SQL1用命令创建表
PostgreSQL(一)教程-----SQL语言

PostgreSQL(⼀)教程-----SQL语⾔⼀、概念PostgreSQL是⼀种关系型数据库管理系统(RDBMS)。
这意味着它是⼀种⽤于管理存储在关系中的数据的系统。
关系实际上是表的数学术语。
今天,把数据存储在表⾥的概念已经快成了固有的常识了,但是还有其它的⼀些⽅法⽤于组织数据库。
在类 Unix 操作系统上的⽂件和⽬录就形成了⼀种层次数据库的例⼦。
更现代的发展是⾯向对象数据库。
每个表都是⼀个命名的⾏集合。
⼀个给定表的每⼀⾏由同⼀组的命名列组成,⽽且每⼀列都有⼀个特定的数据类型。
虽然列在每⾏⾥的顺序是固定的,但⼀定要记住 SQL 并不对⾏在表中的顺序做任何保证(但你可以为了显⽰的⽬的对它们进⾏显式地排序)。
表被分组成数据库,⼀个由单个PostgreSQL服务器实例管理的数据库集合组成⼀个数据库集簇。
⼆、创建⼀个新表你可以通过指定表的名字和所有列的名字及其类型来创建表∶CREATE TABLE weather (city varchar(80),temp_lo int, -- 最低温度temp_hi int, -- 最⾼温度prcp real, -- 湿度date date);你可以在psql输⼊这些命令以及换⾏符。
psql可以识别该命令直到分号才结束。
你可以在 SQL 命令中⾃由使⽤空⽩(即空格、制表符和换⾏符)。
这就意味着你可以⽤和上⾯不同的对齐⽅式键⼊命令,或者将命令全部放在⼀⾏中。
两个划线("--")引⼊注释。
任何跟在它后⾯直到⾏尾的东西都会被忽略。
SQL 是对关键字和标识符⼤⼩写不敏感的语⾔,只有在标识符⽤双引号包围时才能保留它们的⼤⼩写(上例没有这么做)。
varchar(80)指定了⼀个可以存储最长 80 个字符的任意字符串的数据类型。
int是普通的整数类型。
real是⼀种⽤于存储单精度浮点数的类型。
date类型应该可以⾃解释(没错,类型为date的列名字也是date。
SQL语言的组成一、SQL语言有命令动词、子句、运算符和统计函数构成。这些元素结合起来组成语句,用

SQL语言的组成一、SQL语言有命令动词、子句、运算符和统计函数构成。
这些元素结合起来组成语句,用SQL语言的组成一、SQL语言有命令动词、子句、运算符和统计函数构成。
这些元素结合起来组成语句,用来对数据库进行各种操作,包括创建、更新、查询及一些其他功能。
虽名为结构化查询语言,实际上不止如此,SQL的功能分为如下3个部分:(1) Data Definition Language(DDL),数据定义语言(2) Data Control Language(DCL),数据控制语言(3)Data Manipulation Language(DML),数据处理语言这3种语言合起来组成了完整的SQL,其主要的命令动词如下表所示,通过这几个动词,就可以完成对数据库的大部分操作SQL的基本命令动词分实现的,可以完成表、视图、索引、存储过程、用户和组的建立和撤销。
其基本命令有如下几个:1) Create Table,创建新表2) Create Index,在现有的表上创建新的索引3) Create Procedure,创建一个存储过程4) Create View,创建新视图5) Create{User| Group} ,创建一个或更多的新用户或组6) Alter Table ,修改用CreateTable创建的表Drop {Table | Index | Procedure | View | User | Group},撤销上述用Create 命令建立的相应对象。
为了在Visual Basic中执行SQL语句需要使用Database对象的Execute方法,参数写上SQL语句即可。
数据控件的数据源(Recordsource)属性也额可以直接使用SQL的Select语句。
下面就用SQL语句建立一个数据表,并且加上索引(以后介绍中直接写SQL语句,不再涉及Visual Basic部分)Sub CreateTable() Dim db As Database, Sql As String Set db = CreateDatabase('students.mdb', dbLangChineseSimplified) '创建数据库Sql = 'create table students(XH integer,XM text(20),XB text(2),BORN text(40),BIRTH datetime);' db.Execute Sql Sql = 'Create unique index XH on students(XH ASC) with primary;' 'ASC 是指升序,如果用降序,改为DESC db.Execute Sql '执行创建索引的SQL语句 db.Close '关闭数据库End Sub 执行过上述Visual Basic 程序后,会建立一个带有索引的数据表。
MySQL数据库应用-实验训练1 在MySQL中创建数据库和表

1、使用show语句找出在服务器上当前存在什么数据库: mysqI>show databases;2、创建一个数据库test:mysql>create database test;3、选择你所创建的数据库:mysql>use test;4创建一个数据表:首先查看刚才创建的数据库中存在什么表:mysql>show tables;(说明刚才创建的数据库中还没有数据库表)接着我们创建--个关于students的数据表:包括学生的学号(id), 姓名(name),性别(sex),年龄(age)。
mysql>create table students(id int unsigned not null auto_ increment primary key,name char(8) not null,sex char(4) not null,age tinyint unsigned not null);解释:以"id int unsigned not null auto_ increment primary key"行进行介绍:"id"为列的名称;"int"指定该列的类型为int(取值范围为-8388608 到8388607),在后面我们又用"unsigned" 加以修饰,表示该类型为无符号型,此时该列的取值范围为0到16777215;"not null”说明该列的值不能为空,必须要填,如果不指定该属性,默认可为空:"auto_ increment"需在整数列中使用,其作用是在插入数据时若该列为NULL, MySQL将自动产生一个比现存值更大的唯一标识符值。
在每张表中仅能有一个这样的值且所在列必须为索引列。
"primary key"表示该列是表的主键,本列的值必须唯一,MySQL将自动索引该列。
SQL语句创建学生信息数据库表的示例-学生信息数据库表

用SQL语句创建如下三个基本表:学生表(Student)、课程表(Course)、学生选课表(SC),结构如下所示Student表结构Create table Student(Sno varchar(7) primary key,Sname varchar(10) not null,Ssex char (2) check(Ssex=‘男’or Ssex=’女’),Sage int check(Sage between 15 and 45),Sdept varchar(20) default(‘计算机系’))Course表结构Create table course(Cno varchar(10) primary key,Cname varchar(20) not null,Ccredit int check(Sctedit>0),Semester int check(Semester>0),Period int check(Period>0))SC表结构Create table SC(Sno varchar(7) foreign key references student(Sno),Cno varchar(10) foreign key references course(Cno),Grade int check(Grade between 0 and 100),Primary key (Sno,Cno))1.查询学生选课表中的全部数据。
SELECT *FROM SCgo2.查询计算机系学生的姓名、年龄。
Select Sname,SageFrom StudentWhere Sdept=’计算机系’3.查询成绩在70~80分之间的学生的学号、课程号和成绩。
Select Sno,Cno,GradeFrom Course,ScWhere o=o and sc.Grade between 70 and 804.查询计算机系年龄在18~20之间且性别为“男”的学生的姓名和年龄。
SQL语句创建学生信息数据库表的示例

用SQL语句创建如下三个基本表:学生表(Studen t)、课程表(Course)、学生选课表(SC),结构如下所示Studen t表结构Create table Student(Sno varchar(7) primar y key,Snamevarchar(10) not null,Ssex char (2) check(Ssex=‘男’or Ssex=’女’),Sage int check(Sage betwee n 15 and 45),Sdeptvarchar(20) defaul t(‘计算机系’))Course表结构Create tablecourse(Cno varchar(10) primar y key,Cnamevarchar(20) not null,Ccredi t int check(Sctedi t>0),Semest er int check(Semest er>0),Period int check(Period>0))SC表结构Create tableSC(Sno varcha r(7) foreig n key refere ncesstuden t(Sno),Cno varcha r(10) foreig n key refere ncescourse(Cno),Gradeint check(Gradebetwee n 0 and 100),Primar y key (Sno,Cno))1.查询学生选课表中的全部数据。
SELECT *FROM SCgo2.查询计算机系学生的姓名、年龄。
Select Sname,SageFrom Studen tWhereSdept=’计算机系’3.查询成绩在70~80分之间的学生的学号、课程号和成绩。
Oracle基础(习题卷1)

Oracle基础(习题卷1)第1部分:单项选择题,共63题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]以下()用户默认拥有SYSDBA权限A)A-SYSTEMB)B-SYSC)C-SAD)D-DBADMIN答案:B解析:2.[单选题]你使用 IMMEDIATE 选项关闭数据库实例。
考虑打开数据库需要执行的步骤:1. 分配 SGA2. 读取控制文件3. 读取日志文件4. 开始实例恢复5. 启动后台进程6. 检查数据文件一致性7. 读取 spfile 或者 pfile哪个选项是正确的关于这些步骤()A)7, 1, 5, 2, 3, 6, 4B)1, 5, 7, 2, 3, 6; step 4 is not requiredC)7, 1, 5, 2, 3, 6 step 4 is not requiredD)1, 2, 3, 5, 6, 4; step 7 is not required答案:C解析:3.[单选题]执行下面的命令备份 USERS 表空间SQL> ALTER TABLESPACE users BEGIN BACKUP;ALTER TABLESPACE users BEGIN BACKUP*ERROR at line 1:ORA-01123: cannot start online backup;media recovery not enabled什么原因导致整个错误()A)MTTR Advisor 禁用B)数据库处于 NOARCHIVELOG 模式C)表空间已经处于备份模式D)Flash Recovery Area 没有配置答案:B解析:4.[单选题]当执行介质数据库恢复时,有个归档日志文件丢失或者损坏,那么此时只能执行哪种操作?什么A)Until SCNB)Until timeC)Recover using backup control file.D)Until cancel答案:D解析:5.[单选题]oracle逻辑存储结构正确的是( )A)tablespace--segment--osblock--blockB)tablespace--segment--extent--blockC)tablespace--extent--segment--blockD)tablespace--extent--block -segment答案:B解析:6.[单选题]如何将变量v_row 定义为emp表的记录类型( )A)v_row emp%type;B)v_row emp%record;C)v_row emp%tabletype;D)v_row emp%rowtype;答案:D解析:7.[单选题]The schema SALES exists in two databases, ORCL1 and ORCL2, and has the same password,SALES123. User SALES has CREATE DATABASE LINK and CREATE SESSION privileges on bothDatabases.Eaxmine these command:Conn SALES/SALES123CREATE DATABASE LINK orcl2 USING ‘orcl12’;What is the outcome of executing these commands in the ORCL1 database?A)ORCL2 is created as a shared database link to connect multiple sessions to the SALES schema in the ORCL2 databaseB)ORCL2 database link creation failsC)ORCL2 is created as a private database link to connect to only the SALES schema in the ORCL2 databaseD)ORCL2 is created as a public link to connect a single session to the SALES schema in the ORCL2 database答案:C解析:8.[单选题]分析以下的SQL 命令:SELECT manufacturer_idFROM inventoryWHERE manufacturer_id LIKE '%N\%P\%O%' ESCAPE '\';命令执行的返回结果是( )。
sql练习题(1)

sql练习题(1)数据库基础测试题姓名:工号:一、单项选择题,把最合适的选项编号核对在括号内。
(每小题1分后,共10分后)1.在数据库技术中,实体-联系模型是一种()a.概念数据模型b.结构数据模型c.物理数据模型d.逻辑数据模型2.关系数据模型通常由3部分组成,它们是()a.数据结构,数据通信,关系操作b.数据结构,数据操作方式,数据完整性约束c.数据通信,数据操作方式,数据完整性约束d.数据结构,数据通信,数据完整性约束3.sql语言中,删除一个表的命令是()a.deleteb.dropc.cleard.remove4.在sql的查询语句中,orderby选项实现对结果表的()功能a.分组统计数据b.议和c.搜寻d.排序5.sqlserver触发器主要针对下列语句创建()a.select,insert,deleteb.insert,update,deletec.select,update,insertd.insert,update,create6.下列哪个不是sql数据库文件的后缀。
a..mdfb..ldfc..tifd..ndf7.在sql中,建立表用的命令是()。
a.createtableb.createrulec.createviewd.createindex8.sql语言中,条件“年龄between40and50”表示年龄在40至50之间,且()。
a.包含40岁和50岁b.不包含40岁和50岁c.包括40岁但不包括50岁d.包括50岁但不包括40岁9.模式搜寻like'_a%',下面哪个结果就是可能将的a.ailib.baic.bbaa10.若某表中满足用户1nf,且其所有属性再分出来共同组成主健,则一定还满足用户范式()a、只有2nfb、只有3nfc、2nf和3nfd、没有二、填空题,把最合适内容填上在横线上。
(每空1分后,共19分后)1.dbms是指_______________。
SQL常用代码

SQL常用代码CREATE DA TABASE<库名> 创建数据库DROP DATABASE<库名> 删除数据库EXEC sp_dboption ‘pubs’,’read only’,’true’把数据库’pubs’设置为只读EXEC sp_dboption ‘pubs’,autoshrink,true把数据库’pubs’文件设置为自动周期性收缩EXEC sp_dboption ‘pubs’,’single user’同一时间内只有一个用户可以访问’pubs’数据库DBCC SHRINKDA TABASE(PUBS,10)减少’pubs’数据库中文件的大小允许其有10%的未用空间CREATE TABLE <表名> 创建数据库表DROP TABLE <表名> 删除数据库表PRIMARY KEY 主键约束CREATE TABLE 表名< 列名> PRIMARY KEY 创建主键约束ALTER TABLE 表名ADD CONSTRAINT 约束名PRIMARY KEY (<列名>) 添加主键约束Column_name Data Type IDENTITY(SEED,INCREMENT)《其中:Column_name:为IDENTITY属性列添加的列名Data Type:为添加列的数据类型SEED:为IDENTITY列的起始或初始值INCREMENT:为列生成下一个值的步长值(可以为负)》ALTER TABLE <table_name>[ALTER COLUMN <column_name> <new_data_type>]| ADD column_name <dats_type>| DROP COLUMN <column_name>《其中:<table_name>是要修改的表的名称ALTER COLUMN是指定要修改的列<column_name>是指要修改添加或删除的列的名称<new_data_type>是指将列修改为新的数据类型<dats_type>是指要添加的列的数据类型ADD 是表明要向表添加一列DROP COLUMN是表明要从表中删除一列》CHEAK(检查约束) DEFAULT(默认约束)UNIQUE(唯一约束)FOPEIGN KEY(外键约束)PRIMARY KEY(主键约束)CREATE TABLE <table_name>(<column_definition> <constraint_definition>)《其中:<table_name>是表名<column_definition>是表的每一列的定义<constraint_definition>是任何为表或列定义的约束》ALTER TEBLE <table_name>ADD CONSTRAINT <constraint_name><type_of_constraint>《其中:ADD CONSTRAINT是表明要向表中添加一列<constraint_name>是约束名<type_of_constraint>是约束类型》INSERT[INTO] <table_name> V ALUES <values>《其中:[INTO]是INSERT和目标表之间可以使用的关键字(可选)<table_name>是插入记录的目标表的名称<values>是指定表中列的值》INSERT [INTO] <table_name> SELECT <column_list> FROM <table_name2>《其中:<table_name>是要添加数据的目标表的名称<column_list>是从现有表中选择的列的列表<table_name2>是现有表的名称》UPDATE <table_name>SET <column_name = value>[WHERE <search_condition>]《其中:<table_name>要更新记录的表的名称<column_name = value>制定被修改列的值<search_condition>是WHERE子句筛选的数据行的限定条件》《多行更新可以通过省略WHERE子句或在WHERE子句中包含一个将影响多行的条件来更新表的多行》DELETE FROM <table_name> [WHERE <sesrch_condition>]《其中:<table_name>是要从中删除记录的表的名称WHERE子句用于指定条件,要删除一行或是多行都必须指定条件》TAUNCA TE TABLE <table_name>要比没有WHERE的DELETE执行删除表中的所有行速度快,而且使用的系统资源和事务日志资源更少。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例2:创建课程表1。 :创建课程表1 CREATE TABLE 课程表1 ( 课程表1 课程号 CHAR(4) NOT NULL, CHAR( NULL, 课程名称 CHAR(20)NOT NULL UNIQUE, CHAR(20) UNIQUE, 上课教师 CHAR(8), CHAR( CONSTRAINT PK_课程表1 PRIMARY KEY PK_课程表1 N0NCLUSTERED(课程号) N0NCLUSTERED(课程号) )
CONSTRAINT FK_成绩表1_课程表1 FK_成绩表1_课程表1 FOREIGN KEY(课程号)REFERENCES KEY(课程号)REFERENCES 课程表1 课程表1(课程号), CONSTRAINT FK_成绩表1_学生基本表1 FK_成绩表1_学生基本表1 FOREIGN KEY(学号)REFERENCES 学 KEY(学号)REFERENCES 生基本表1 生基本表1(学号) )
例1:创建学生基本表1 :创建学生基本表1 CREATE TABLE 学生基本表1( 学生基本表1( 学号 CHAR(4) NOT NULL, 姓名 CHAR(8) NOT NULL, 性别 CHAR(2) NOT NULL DEFAULT ‘男’, 出生日期 DATETIME NOT NULL, 籍贯 CHAR(10), 院系名称 CHAR(20), 专业 CHAR(20),
入学日期 DATETIME, 奖学金 MONEY, 备注 TEXT NULL, CONSTRAINT PK_学生基本表1 PRIMARY KEY PK_学生基本表1 NONCLUSTERED(学号), NONCLUSTERED(学号), CONSTRAINT CK_奖学金取值范围 CK_奖学金取值范围 CHECK(奖学金>=0 CHECK(奖学金>=0 and 奖学金<=5000), 奖学金<=5000), CONSTRAINT CK_性别 CHECK(性别 IN CK_性别 CHECK(性别 (‘男’,‘女’)), CONSTRAINT CK_日期限制 CHECK(出生日期<入 CK_日期限制 CHECK(出生日期< 学日期) 学日期) )
例3:创建成绩表1。 :创建成绩表1 CREATE TABLE 成绩表1( 成绩表1 学号 CHAR(4)NOT NULL, CHAR( NULL, 课程号 CHAR(4)NOT NULL, CHAR( NULL, 平时成绩 NUMERIC(6,2), NUMERIC( 考试成绩 NUMERIC(6,2), NUMERIC( 总成绩 NUMERIC(6,2), NUMERIC( 开始日期 DATETIME, DATETIME, 结束日期 DATETIME, DATETIME, CONSTRAINT PK_成绩表1 PRIMARY KEY PK_成绩表1 NONCLUSTERED(学号,课程号), NONCLUSTERED(学号,课程号),