SQL学习笔记

发布 2021-05-02 03:16:28 阅读 1858

目录。1、数据库创建 1

2、创建表 1

3、表结构查询 2

4、在表中增加列 3

5、修改列的约束属性 3

6、使用insert into 语句添加数据 3

7、使用 select * into 添加相关的数据到一个新表中 4

8、间接修改列为非空值的办法 4

9、更为完善的create table 4

10、学生成绩表的建立 5

11、删除掉sex列的check约束,重新建立 6

12、对default 约束的重新建立 6

13、唯一性约束 7

14、外键约束 7

15、数据检索类 9

16、检索技术 9

17、模糊查询里的范围 10

18、流程控制语句 10

create database testbase

on name = testbasedata,filename = c:\workarea\testbase\'

log on

name = testbasedata_log,filename = c:\workarea\testbase\testbasedata_'

gouse testbase

create table student

number smallint identity(1,1) primary key,

--int > samllint > tinyint。

name char(20),age tinyint, -0-255 ,可用。

sex char(2)

改善后的create table,从以下图中可看出,结构较为完善。

create table student

number smallint identity(1,1) constraint pk_student_number_20160518 primary key,

name char(20) not null,age tinyint not null,

sex char(2) default('男'),email char(20) null,address char(40)

2.2 、删除表。

drop table student

sp_help student

显示如下所示。

注意: 直接在表名后加add ,后面也不用()了,即可以直接增加多行。

alter table student add

email char(20),address char(40)

只能一列一列的操作吗?

alter table student

-alter column name char(20) not null

-alter column age tinyint not null

alter column sex char(2) not null

修改后结果如下:

insert into student values('223456789012345678','张楠',19,'女',null,null)

注意:number 的值会自动增加。

结果如下:注意:以上的是添加单条数据到库存中,以下是批量添加数据到一个表里,用子查询。

- newid(),产生一个新的guid号,后面的子句从用友u8.90的系统里查询出一系列的姓名,并一次性批量导入globallydata表中。

insert into globallydata (guid,employeename)

select newid() ua_ from ua_user where cuser_name like '%刘%'

*要用相关的字段名代替)

select * into newstudent from student where age = 20

1)、第一步,将需要增加的列置为可空性,否则表里有数据存在(直接not null)会不成功。

alter table student add

id char(18) null增加的身份证列,且定义为可空值。

2)、表里原有的数据写入初始值。

select * from student

update student set id = 111111198008020xxx'

3)、再把该列改为非空的属性。

alter table student alter column

id char(18) not null

分别加入了default及check,primary key 及命名准确。

create table student

number smallint identity(1,1) constraint pk_student_number_20160518 primary key,

id char(18) not null,name char(20) not null,age tinyint not null constraint default_student_age default 18

constraint check_student_age check(age>18 and age <40),

sex char(2) constraint default_student_sex default('男')

constraint check_student_sex check(sex ='男' or sex ='女') email char(20) null,address char(40),)

其效果如下示:

更新的写入数据:

insert into student values('111111111111111111','王继',20,'男',null,null)

create table score

id char(18) not null,chinese tinyint default 0 not null,maths tinyint default 0 not null,english tinyint default 0 not null,sport tinyint default 0 not null

查看表中全部约束的方法,以下的效果很直观:

exec sp_helpconstraint student

另外三个可查的相关信息:

select * from syscomments

select * from sysreferences

select * from sysconstraints

alter table student drop constraint check_student_age

修改后的如下:

alter table student add constraint check_student_age check(age >=18 and age <=50)

效果如下图示:

alter table score drop constraint df__score__sport__0ea330e9

alter table score add constraint df_score_sport_60 default 60 for sport

注意:和check约束比较起来 ,default 多了for 参数,当然的,不然不知是哪一列呢!

当删除了原有的default之后,以下语法是可行的:

alter table score add constraint df_score_sport_60 default 60 for sport ,constraint df_score_maths_60 default 60 for maths

在student中对id添加唯一性约束,以及在score表中添加唯一性约束,以方便建议外键的约束关系。这里需要注意的是,unique后面要加()才能够语法通过检查,这也说明了唯一性约束是可以多个列一起存在的。

SQL学习笔记

where子句。比较运算符 范围说明 between a and b,not between a and b.可选值列表 in not in 一般用于嵌套查询。模式匹配 like not like 是否空值 is null is not null 上述条件的逻辑组合 and or not 内容大小写...

SQL学习笔记

增加记录。在使用sql数据库的时候,我们也许会需要一次像数据库中添加多条记录,那么我们可以使用sql语句来实现,该语句具体如下 添加一条记录。insert into tablename col1,col2,col3 values 1,2,3 添加多条记录。insert into tablename ...

sql学习笔记

与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表 左外连接时 右表 右外连接时 或两个表 全外连接时 中所有符合搜索条件的数据行。交叉连接 crossjoin 没有where子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二...