重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
自己打开企业管理器,随便找个表,导出一个创建表的脚本,就什么都有了。
成都创新互联-专业网站定制、快速模板网站建设、高性价比船营网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式船营网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖船营地区。费用合理售后完善,十余年实体公司更值得信赖。
要语法,SQL的联机帮助里就有:
CREATE
TABLE
[
database_name
.
[
schema_name
]
.
|
schema_name
.
]
table_name
(
{
|
}
[
]
[
,...n
]
)
[
ON
{
partition_scheme_name
(
partition_column_name
)
|
filegroup
|
"default"
}
]
[
{
TEXTIMAGE_ON
{
filegroup
|
"default"
}
]
[
;
]
::=
column_name
[
COLLATE
collation_name
]
[
NULL
|
NOT
NULL
]
[
[
CONSTRAINT
constraint_name
]
DEFAULT
constant_expression
]
|
[
IDENTITY
[
(
seed
,increment
)
]
[
NOT
FOR
REPLICATION
]
]
[
ROWGUIDCOL
]
[
[
...n
]
]
::=
[
type_schema_name
.
]
type_name
[
(
precision
[
,
scale
]
|
max
|
[
{
CONTENT
|
DOCUMENT
}
]
xml_schema_collection
)
]
::=
[
CONSTRAINT
constraint_name
]
{
{
PRIMARY
KEY
|
UNIQUE
}
[
CLUSTERED
|
NONCLUSTERED
]
[
WITH
FILLFACTOR
=
fillfactor
|
WITH
(
index_option
[
,
...n
]
)
]
[
ON
{
partition_scheme_name
(
partition_column_name
)
|
filegroup
|
"default"
}
]
|
[
FOREIGN
KEY
]
REFERENCES
[
schema_name
.
]
referenced_table_name
[
(
ref_column
)
]
[
ON
DELETE
{
NO
ACTION
|
CASCADE
|
SET
NULL
|
SET
DEFAULT
}
]
[
ON
UPDATE
{
NO
ACTION
|
CASCADE
|
SET
NULL
|
SET
DEFAULT
}
]
[
NOT
FOR
REPLICATION
]
|
CHECK
[
NOT
FOR
REPLICATION
]
(
logical_expression
)
}
::=
column_name
AS
computed_column_expression
[
PERSISTED
[
NOT
NULL
]
]
[
[
CONSTRAINT
constraint_name
]
{
PRIMARY
KEY
|
UNIQUE
}
[
CLUSTERED
|
NONCLUSTERED
]
[
WITH
FILLFACTOR
=
fillfactor
|
WITH
(
[
,
...n
]
)
]
|
[
FOREIGN
KEY
]
REFERENCES
referenced_table_name
[
(
ref_column
)
]
[
ON
DELETE
{
NO
ACTION
|
CASCADE
}
]
[
ON
UPDATE
{
NO
ACTION
}
]
[
NOT
FOR
REPLICATION
]
|
CHECK
[
NOT
FOR
REPLICATION
]
(
logical_expression
)
[
ON
{
partition_scheme_name
(
partition_column_name
)
|
filegroup
|
"default"
}
]
]
table_constraint
::=
[
CONSTRAINT
constraint_name
]
{
{
PRIMARY
KEY
|
UNIQUE
}
[
CLUSTERED
|
NONCLUSTERED
]
(column
[
ASC
|
DESC
]
[
,...n
]
)
[
WITH
FILLFACTOR
=
fillfactor
|WITH
(
[
,
...n
]
)
]
[
ON
{
partition_scheme_name
(partition_column_name)
|
filegroup
|
"default"
}
]
|
FOREIGN
KEY
(
column
[
,...n
]
)
REFERENCES
referenced_table_name
[
(
ref_column
[
,...n
]
)
]
[
ON
DELETE
{
NO
ACTION
|
CASCADE
|
SET
NULL
|
SET
DEFAULT
}
]
[
ON
UPDATE
{
NO
ACTION
|
CASCADE
|
SET
NULL
|
SET
DEFAULT
}
]
[
NOT
FOR
REPLICATION
]
|
CHECK
[
NOT
FOR
REPLICATION
]
(
logical_expression
)
}
::=
{
PAD_INDEX
=
{
ON
|
OFF
}
|
FILLFACTOR
=
fillfactor
|
IGNORE_DUP_KEY
=
{
ON
|
OFF
}
|
STATISTICS_NORECOMPUTE
=
{
ON
|
OFF
}
|
ALLOW_ROW_LOCKS
=
{
ON
|
OFF}
|
ALLOW_PAGE_LOCKS
={
ON
|
OFF}
}
1.选择最有效率的表名顺序(只在基于规则的优化器中有效):
ORALCE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.
2.WHERE子句中的连接顺序:
ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.
3.SELECT子句中避免使用 * :
ORACLE在解析的过程中, 会将’*’ 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间.
4.使用DECODE函数来减少处理时间:
使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表.
5.用Where子句替换HAVING子句:
避免使用HAVING子句, HAVING 只会在检索出所有记录之后才对结果集进行过滤. 这个处理需要排序,总计等操作. 如果能通过WHERE子句限制记录的数目,那就能减少这方面的开销. on、where、having这三个都可以加条件的子句中,on是最先执行,where次之,having最后,因为on是先把不符合条件的记录过滤后才进行统计,它就可以减少中间运算要处理的数据,按理说应该速度是最快的,where也应该比having快点的,因为它过滤数据后才进行sum,在两个表联接时才用on的.在多表联接查询时,on比where更早起作用。系统首先根据各个表之间的联接条件,把多个表合成一个临时表后,再由where进行过滤,然后再计算,计算完后再由having进行过滤。
6.减少对表的查询:
在含有子查询的SQL语句中,要特别注意减少对表的查询.例子:
SELECT TAB_NAME FROM TABLES WHERE (TAB_NAME,DB_VER) = (SELECT TAB_NAME,DB_VER FROM TAB_COLUMNS WHERE VERSION = 604)
7.使用表的别名(Alias):
当在SQL语句中连接多个表时, 请使用表的别名并把别名前缀于每个Column上.这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误.
8.用EXISTS替代IN、用NOT EXISTS替代NOT IN:
在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下, 使用EXISTS(或NOT EXISTS)通常将提高查询的效率. 在子查询中,NOT IN子句将执行一个内部的排序和合并. 无论在哪种情况下,NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历). 为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS.
例子:
(高效)SELECT * FROM EMP (基础表) WHERE EMPNO 0 AND EXISTS (SELECT ‘X’ FROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO AND LOC = ‘MELB’)
(低效)SELECT * FROM EMP (基础表) WHERE EMPNO 0 AND DEPTNO IN(SELECT DEPTNO FROM DEPT WHERE LOC = ‘MELB’)
9. 识别’低效执行’的SQL语句:
SELECT EXECUTIONS , DISK_READS, BUFFER_GETS,
ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio,
ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run,
SQL_TEXT
FROM V$SQLAREA
WHERE EXECUTIONS0
AND BUFFER_GETS 0
AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS 0.8
ORDER BY 4 DESC;
10.用索引提高效率:
索引是表的一个概念部分,用来提高检索数据的效率,ORACLE使用了一个复杂的自平衡B-tree结构. 通常,通过索引查询数据比全表扫描要快. 当ORACLE找出执行查询和Update语句的最佳路径时, ORACLE优化器将使用索引. 同样在联结多个表时使用索引也可以提高效率. 另一个使用索引的好处是,它提供了主键(primary key)的唯一性验证.。那些LONG或LONG RAW数据类型, 你可以索引几乎所有的列. 通常, 在大型表中使用索引特别有效. 当然,你也会发现, 在扫描小表时,使用索引同样能提高效率. 虽然使用索引能得到查询效率的提高,但是我们也必须注意到它的代价. 索引需要空间来存储,也需要定期维护, 每当有记录在表中增减或索引列被修改时, 索引本身也会被修改. 这意味着每条记录的INSERT , DELETE , UPDATE将为此多付出4 , 5 次的磁盘I/O . 因为索引需要额外的存储空间和处理,那些不必要的索引反而会使查询反应时间变慢.
11.用EXISTS替换DISTINCT:
当提交一个包含一对多表信息(比如部门表和雇员表)的查询时,避免在SELECT子句中使用DISTINCT. 一般可以考虑用EXIST替换, EXISTS 使查询更为迅速,因为RDBMS核心模块将在子查询的条件一旦满足后,立刻返回结果. 例子:
(低效):
SELECT DISTINCT DEPT_NO,DEPT_NAME FROM DEPT D , EMP E
WHERE D.DEPT_NO = E.DEPT_NO
(高效):
SELECT DEPT_NO,DEPT_NAME FROM DEPT D WHERE EXISTS ( SELECT ‘X’
FROM EMP E WHERE E.DEPT_NO = D.DEPT_NO);
12.sql语句用大写的:
因为oracle总是先解析sql语句,把小写的字母转换成大写的再执行
13.避免在索引列上使用NOT
我们要避免在索引列上使用NOT, NOT会产生在和在索引列上使用函数相同的影响. 当ORACLE”遇到”NOT,他就会停止使用索引转而执行全表扫描.
14.避免在索引列上使用计算.
WHERE子句中,如果索引列是函数的一部分.优化器将不使用索引而使用全表扫描.
举例:
低效:
SELECT … FROM DEPT WHERE SAL * 12 25000;
高效:
SELECT … FROM DEPT WHERE SAL 25000/12;
15.用=替代
高效:
SELECT * FROM EMP WHERE DEPTNO =4
低效:
SELECT * FROM EMP WHERE DEPTNO 3
两者的区别在于, 前者DBMS将直接跳到第一个DEPT等于4的记录而后者将首先定位到DEPTNO=3的记录并且向前扫描到第一个DEPT大于3的记录
16.用UNION替换OR (适用于索引列)
通常情况下, 用UNION替换WHERE子句中的OR将会起到较好的效果. 对索引列使用OR将造成全表扫描. 注意, 以上规则只针对多个索引列有效. 如果有column没有被索引, 查询效率可能会因为你没有选择OR而降低. 在下面的例子中, LOC_ID 和REGION上都建有索引.
高效:
SELECT LOC_ID , LOC_DESC , REGION
FROM LOCATION
WHERE LOC_ID = 10
UNION
SELECT LOC_ID , LOC_DESC , REGION
FROM LOCATION
WHERE REGION = “MELBOURNE”
低效:
SELECT LOC_ID , LOC_DESC , REGION
FROM LOCATION
WHERE LOC_ID = 10 OR REGION = “MELBOURNE”
如果你坚持要用OR, 那就需要返回记录最少的索引列写在最前面.
17.用IN来替换OR
这是一条简单易记的规则,但是实际的执行效果还须检验,在ORACLE8i下,两者的执行路径似乎是相同的.
低效:
SELECT…. FROM LOCATION WHERE LOC_ID = 10 OR LOC_ID = 20 OR LOC_ID = 30
高效
SELECT… FROM LOCATION WHERE LOC_IN IN (10,20,30);
18.避免在索引列上使用IS NULL和IS NOT NULL
避免在索引中使用任何可以为空的列,ORACLE将无法使用该索引.对于单列索引,如果列包含空值,索引中将不存在此记录. 对于复合索引,如果每个列都为空,索引中同样不存在此记录. 如果至少有一个列不为空,则记录存在于索引中.举例: 如果唯一性索引建立在表的A列和B列上, 并且表中存在一条记录的A,B值为(123,null) , ORACLE将不接受下一条具有相同A,B值(123,null)的记录(插入). 然而如果所有的索引列都为空,ORACLE将认为整个键值为空而空不等于空. 因此你可以插入1000 条具有相同键值的记录,当然它们都是空! 因为空值不存在于索引列中,所以WHERE子句中对索引列进行空值比较将使ORACLE停用该索引.
低效: (索引失效)
SELECT … FROM DEPARTMENT WHERE DEPT_CODE IS NOT NULL;
高效: (索引有效)
SELECT … FROM DEPARTMENT WHERE DEPT_CODE =0;
19.总是使用索引的第一个列:
如果索引是建立在多个列上, 只有在它的第一个列(leading column)被where子句引用时,优化器才会选择使用该索引. 这也是一条简单而重要的规则,当仅引用索引的第二个列时,优化器使用了全表扫描而忽略了索引
20.用UNION-ALL 替换UNION ( 如果有可能的话):
当SQL 语句需要UNION两个查询结果集合时,这两个结果集合会以UNION-ALL的方式被合并, 然后在输出最终结果前进行排序. 如果用UNION ALL替代UNION, 这样排序就不是必要了. 效率就会因此得到提高. 需要注意的是,UNION ALL 将重复输出两个结果集合中相同记录. 因此各位还是要从业务需求分析使用UNION ALL的可行性. UNION 将对结果集合排序,这个操作会使用到SORT_AREA_SIZE这块内存. 对于这块内存的优化也是相当重要的. 下面的SQL可以用来查询排序的消耗量
低效:
SELECT ACCT_NUM, BALANCE_AMT
FROM DEBIT_TRANSACTIONS
WHERE TRAN_DATE = ’31-DEC-95’
UNION
SELECT ACCT_NUM, BALANCE_AMT
FROM DEBIT_TRANSACTIONS
WHERE TRAN_DATE = ’31-DEC-95’
高效:
SELECT ACCT_NUM, BALANCE_AMT
FROM DEBIT_TRANSACTIONS
WHERE TRAN_DATE = ’31-DEC-95’
UNION ALL
SELECT ACCT_NUM, BALANCE_AMT
FROM DEBIT_TRANSACTIONS
WHERE TRAN_DATE = ’31-DEC-95’
21.ORDER BY:
ORDER BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序.
ORDER BY中所有的列必须定义为非空.
WHERE子句使用的索引和ORDER BY子句中所使用的索引不能并列.
22.需要当心的WHERE子句:
某些SELECT 语句中的WHERE子句不使用索引. 这里有一些例子.
在下面的例子里, (1)‘!=’ 将不使用索引. 记住, 索引只能告诉你什么存在于表中, 而不能告诉你什么不存在于表中. (2) ‘||’是字符连接函数. 就象其他函数那样, 停用了索引. (3) ‘+’是数学函数. 就象其他数学函数那样, 停用了索引. (4)相同的索引列不能互相比较,这将会启用全表扫描.
23.优化GROUP BY:
提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉.下面两个查询返回相同结果但第二个明显就快了许多.
低效:
SELECT JOB , AVG(SAL)
FROM EMP
GROUP by JOB
HAVING JOB = ‘PRESIDENT’
OR JOB = ‘MANAGER’
高效:
SELECT JOB , AVG(SAL)
FROM EMP
WHERE JOB = ‘PRESIDENT’
OR JOB = ‘MANAGER’
GROUP by JOB
24.视图中不要有ORDER BY
视图里面有 order by 会干扰执行计划
热门频道
首页
博客
研修院
VIP
APP
问答
下载
社区
推荐频道
活动
招聘
专题
打开CSDN APP
Copyright © 1999-2020, CSDN.NET, All Rights Reserved
sql
打开APP
SQL数据库创建学生、教师、选课表 原创
2020-12-17 12:05:09
7点赞
Chowhound_i
码龄2年
关注
SQL数据库创建学生、教师、选课表
创建学生表
create table student (
sno char(14) primary key,
sname char (10) not null,
ssex char(2),
sage tinyint,
sdept varchar(20),
spassword tinyint,
)
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
创建教师表
create table teacher (
tno char(14) primary key,
tname char (10) not null,
tsex char(2),
tage tinyint,
sdept varchar(20),
spassword tinyint,
)
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
创建选课表
create table course (
cno char(10),
sno char(14) not null,
tno char(14) not null,
cyear tinyint,
cterm tinyint,
grade tinyint,
primary key(sno,tno),
foreign key(sno) references student(sno),
foreign key(tno) references teacher(tno),
)
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
文章知识点与官方知识档案匹配
MySQL入门技能树使用数据库创建和删除表
28046 人正在系统学习中
点击阅读全文
打开CSDN,阅读体验更佳
3.SQL--创建教师表和向表内插入数据_weixin_33712881的博客
3.SQL--创建教师表和向表内插入数据 --创建教师表,并向表内插入数据 create table Teacher(Tid varchar(10),Tname nvarchar(10)) --向表内插入数据 insertinto Teacher values('01' , '韩寒') insert into Teacher values('02...
sql语句(学生表、课程表、分数表、教师表)_煜帆帆的博客
student(学生表)、teacher(教师表)、course(课程表)、sc(分数表) 2、创建表 //学生表 create table student( sno varchar2(10) primary key, sname varchar2(20), sage number(2), ssex varchar2(5) ); 1 2 3 4 5 6...
热门推荐 创建一个数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)
创建一个数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表… 表(一)Student (学生表) 属性名 数据类型 可否为空 含 义 Sno varchar (20) 否 学号 Sname varchar (20) 否 学生姓名 Ssex varchar ...
继续访问
mysql创建教师表_day34 mysql 认识数据库,创建学生,教师,学院表
数据库 - 数据的仓库(集散地) - database - 实现数据持久化和数据管理持久化 - 将数据从内存转移到能够长久保存数据的存储介质的过程数据库的分类:关系型数据库(SQL)和非关系型数据库(NoSQL)文件系统 / 层次数据库 / 网状数据库关系型数据库1970s - E.F.Codd - IBM研究员 - System R理论基础:关系代数和集合论具体表象:用二维表来保存数据 - 学生...
继续访问
使用SQL语句创建及使用SQLServer数据库_MyAnqi的博客
1使用SQL语句在数据库中Student表插入对应表格前2行元组。 insert into Student(sno,sn,sex,bor,clano,age)values(108,'曾华','男','1992-09-01','09033',22); insert into Student(sno,sn,sex,bor,clano,age)values(105,...
...名学生的SQL语句。_白一晓的博客_查询教师表中的总人数
在Mysql面试的写SQL语句环节中,有人曾碰到了这样一道这样的一道SQL语句题。目前有两张数据表,一张学生,一张老师表。里面都有Name和Code两个字段。求出张三的老师一共有多少名学生。 这样,我们还是先建两张普通的数据表。
最新发布 mysql 创建学生表、课程表、学生选课表
学生-课程数据库中包含以下三个表关系的主码加粗表示,各个表中的数据实例:StudentCourseSCSno为Student表的主键,Cno为Course表的主键,SC表中外键Sno,Cno分别是Student表和Course表的主键
继续访问
数据库实验报告一
KingBase数据库下SQL语句的基本使用
继续访问
数据库sql语句练习_Young_991的博客
一、设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题...
...和MySQL示例查询_库特社区的博客_sql创建教师信息表
了解如何在其中创建表是一个重要且基本的概念。SQL 在本教程中,我将使用 PostgreSQL 和 MySQL 的代码示例向您介绍语句的语法。SQLCREATE TABLE 基本语法CREATE TABLE 以下是该语句的基本语法:CREATE TABLE ...
【SQL】基本SQL数据表(学生、老师、课程、成绩)
create table student--创建student数据表 ( s_no char(10) not null, --学号 s_name nchar(10), --姓名 s_sex char(2), --性别 borndate smalldatetime,--出生日期 ClassName nvarchar(50), --班级名称 Telephone varchar(11), --电话号码 EnrollDate smal.
继续访问
数据库题:学生表,选课表,课程表写SQL(多表)
设教学数据库中有三个基本表: 学生表 S(SNO,SNAME,AGE,SEX),其属性表示学生的学号、姓名、年龄和性别;选课表 SC(SNO,CNO,GRADE),其属性表示学生的学号、所学课程的课程号和成绩;课程表 C(CNO,CNAME,TEACHER),其属性表示课程号、课程名称和任课教师姓名。 下面的题目都是针对上述三个基本表操作的(原题S#、C#这样子写法在查询的时候会报错,这里就用S...
继续访问
2021-09-06
#创建db_test数据库 create DATABASE db_test CHARACTER set utf8; use db_test; #在test数据库中创建teacher表 create table teacher( number int PRIMARY key auto_increment, tname VARCHAR(30), sex VARCHAR(4), depno int, salary float, address VARCHAR(...
继续访问
太原理工大学软件学院数据库实验四(2021.4.26)
太原理工大学软件学院数据库实验四(2021.4.26) -- (1)创建Student 表 CREATE TABLE Student ( Sno CHAR(8) PRIMARY KEY, Sname CHAR(8) NOT NULL, Ssex CHAR(2) CHECK( Ssex in ('男','女')), Sage SMALLINT, Sdept CHAR(20), Sclass CHAR(4) NOT NULL, Stotal smallint DEFAULT 0 ); -- (2)创建Cours
继续访问
SQL语言编程实战系列(一)——教学管理数据库的创建和简单操作
SQL语言编程实战系列(一)——教学管理数据库的创建和简单操作,基于《数据库原理与设计——基于SQL Server2012》王世民等编著P204-综合题5.3.1编写的解答。
继续访问
SQL建表语句(建立学生_课程数据库)
SQL建表语句(建立学生_课程数据库) (1)建立学生_课程数据库 (2)包含学生表Student 包含Sno(学号),Sname(姓名),Ssex(性别),Sage(年龄),Sdapt(所在系)属性列 学号为主码(主键) (3)创建课程表Course 包含Cno(课程号),Cname(课程名),Cpno(先行课课程号),Credit(学分)属性列 课程号为主码(主键) (4)学生_课程表SC 包含Sno(学号),Cno(课程号),Grade(成绩)属性列 学号,课程号为主码(主键) Creat
继续访问
Oracle完整的试题
[code="java"]create table student( sno varchar2(10) primary key, sname varchar2(20), sage number(2), ssex varchar2(5) ); create table teacher( tno varchar2(10) primary key, tname varchar2(20) ...
继续访问
用mysql创建学生成绩表_用SQL创建学生成绩数据库
创建数据库school,这个数据库中包含四个表:分别是学生表、教师表、课程表和成绩表。语法:create database school;(创建数据库school)show databases;(查看是否已经创建好)drop database school;(删除数据库school,这里不必删除)2.设计创建学生表、教师表、课程表和成绩表。语法:use school;create table st...
继续访问
数据库面试----学生、老师、课程、选课表常用sql示例
数据库面试----学生、老师、课程、选课表常用sql示例 请先看看六大范式详解 1——建表 (1)学生表 student DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `sid` int(11) DEFAULT NULL, `sname` varchar(20) DEFAULT NULL, `sage` int(11) DEFAULT NULL, `ssex` varchar(20) DEFAULT NULL ) ENGIN
继续访问
创建学院表 学生表 教师表 课程表 选课记录表
为什么要使用数据库 解决数据持久化问题 高效的管理数据(增删改查) 数据库的分类: 关系型数据库 理论基础:关系代数 具体表象:二维表 行:记录 列:字段 编程语言:SQL(结构化查询语言) DDL - 数据定义语言 — create / drop / alter DML - 数据操作语言 — insert / delete / update DQL - 数据查询语言 — select DCL - 数据控制语言 — grant / revoke ...
继续访问
将数据插入教师表.sql
sql 插入多条语句
合肥工业大学—SQL Server数据库实验三:SQL语句创建和删除基本表
SQL语句创建和删除基本表1. 编写6个基本表2. 修改基本表结构,完整性约束条件3. 用Drop table 语句删除基本表 1. 编写6个基本表 设有简单教学管理的6个关系模式如下: 系(系编号,系名称、系主任、联系电话、地址) 专业(专业编号、专业名称、所属系) 教师(教师编号、姓名、所在系、电话、电子信箱) 学生(学号、姓名、性别、出生日期、所学专业) 课程(课程号、课程名、学分、先修课) 学生选课(学号、课程号、成绩) 要求:在数据库EDUC中,创建对应的6个基本表,基本表的名称和属性名称由
继续访问
学习好sql
科目表 Course数据表介绍 --1.学生表 Student(SId,Sname,Sage,Ssex) --SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Course(CId,Cname,TId) --CId 课程编号,Cname 课程名称,TId 教师编号 --3.教师表 Teacher(TId,Tname) --TId 教师编号,Tna...
继续访问
CSDN学霸课表——NoSQL是什么
《NoSQL是什么》 NoSQL(NoSQL = Not Only SQL),意即反SQL运动,是一项全新的数据库革命性运动。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。 ►阅读全文 Redis集群架构讲师:李兴华 Redis是现在使用最为广泛的NoSQL数据库技术,其自身不仅拥有着良好的操作性能,也被广
继续访问
MySQL的teaching表建立_MySQL-一- 创建数据表
问题一:如何验证MySQL数据库安装成功?问题二:如何用客户端navicat连接到MySQL数据库?练习:创建学校数据库的表2.创建数据库2.1 创建学生表student2.2创建成绩表score2.3创建课程表course2.4创建教师表 teacher注:这里教师姓名可以为null3.练习插入数据3.1 向学生表里添加数据3.2向成绩表中添加数据3.3向课程表中添加数据3.4向教师表中添加数据...
继续访问
学生选课在MYSQL创建表_设要建立“学生选课”数据库,库中包括学生、课程和选课 3 个表,其表结构为: 学生(学号,姓名,性别,年龄,所在系) 课程(课程号,课程名,先行课) 选课(学号,课程号,成...
【单选题】湿空气的下列参数:I.干球温度、II.湿球温度、III.露点温度,它们之间的大小关系是【填空题】在缺省情况下,所创建的索引是_________索引。【其它】使用 T-SQL 命令,完成下面的操作。 1 .创建学生成绩视图(学号,姓名,课程编号,课程名称,成绩) 。 2 .创建信息系学生视图(学号,姓名,性别,系名,出生日期,民族,总学分,备注)。 3 .创建优秀学生视图(学号,姓名,平均...
继续访问
用sql语句创建一个教师表
sql
写评论
评论
35
7
踩
分享
前往CSDN APP阅读全文
阅读体验更佳
CSDN
成就一亿技术人
前往
Chrome浏览器
继续
打开CSDN APP阅读体验更佳
NoSQL数据库有很多种,实现方式差别很大。有接近SQL查询方式的,也有纯粹的键值对查询。
对于K-V型数据库,比较典型的是Redis,系统提供了get、set之类的命令用于增删改查。关键是键值对的键和值怎么设计。
1.定义基本表语句
语法:
USE 数据库名 CREATE TABLE 表名 (列名 类型(大小) DEFAULT'默认值',
列名 类型(大小) DEFAULT'默认值',
2.定义完整性约束
语法:
USE 数据库名 CREATE TABLE 表名 (列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,
列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,
列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,
约束定义
(1)NULL | NOT NULL 用于定义列的空值约束。(定义列) (下面的蓝色部份是单选其中之一)
语法:CONSTRAINT 约束名 NULL | NOT NULL
例:下面的 SQL 语句强制 "Id_P" 列和 "LastName" 列不接受 NULL 值:
(3)PRIMARY KEY 约束唯一标识数据库表中的每条记录。(即可以定义列也可能定义表)
语法:CONSTRAINT 约束名 PRIMARY KEY (列名, 列名, ... ...);
说明:用于定义基本表的主键。与UNIQUE约束类似,PRIMARY KEY 约束也是通过建立唯一索引来保证基本表在主键列(某一个列或多个列的组合)上取值的唯一性。然而它们之间也存在着很大差别:在一个基本表中只能定义一个 PRIMARY KEY 约束,却能定义多个UNIQUE约束。如果为基本表的某一个列或多个列的组合指定了 PRIMARY KEY 约束,那么其中在任何一个列都不能出现空值;而 UNIQUE 约束允许出现空值。
下面的 SQL 在 "Persons" 表创建时在 "Id_P" 列创建 PRIMARY KEY 约束:
(2)UNIQUE 约束唯一标识数据库表中的每条记录。(即可以定义列也可能定义表)
语法:CONSTRAINT 约束名 UNIQUE (列名, 列名, ... ...);
说明:用于指定基本表在某一个列或多个列的组合上取值必须唯一。定义了UNIQUE约束的那些列称为唯一键。如果为基本表的革一列或多个列的组合指定了UNIQUE约束,则系统将为这些列建立唯一索引,从而保证在表中的任意两行记录在指定的列或列组合上不能取同样的值。
注意:
a. UNIQUE 约束唯一标识数据库表中的每条记录。
b. UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
c. PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
d.请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
(4)FOREIGN KEY 外键 (即可以定义列也可能定义表)
语法:CONSTRAINT 约束名 FOREIGN KEY (列名, 列名, ... ...) REFERENCES (列名, 列名, ... ...) ;
说明:指定某一个列或多个列的组合作为外部键,并在外部键和它所引用的主键或唯一键之间建立联系。在这种联系中,包含外部键的基本表称为从表,包含外部键引用的主键或唯一键的表称为主表。一旦为一列或列的组合定义了 FOREIGN KEY 约束,系统将保证从表在外部键上的取值要么是主表中某一个主键值或唯一键值,要么取空值。
下面的 SQL 在 "Orders" 表创建时为 "Id_P" 列创建 FOREIGN KEY: