当前位置:Gxlcms > 数据库问题 > T-SQL - 记录01_基础sql语句操作

T-SQL - 记录01_基础sql语句操作

时间:2021-07-01 10:21:17 帮助过:5人阅读

1.创建数据库(不设置参数) create database MyDatabaseOne; --2.删除数据库 drop database MyDatabaseOne; --3.创建数据库时设置一些参数选项 create database MydatabaseTwo on primary ( --配置主数据文件的选项 name=MyDatabaseTwo,--主数据文件的逻辑名称 filename=C:\DB_Test\MyDatabaseTwo.mdf,--主数据文件的实际保存路径 size=5MB, maxsize=150MB, filegrowth=20% ) log on ( --配置日志文件的选项 name=MyDatabaseTwo_log,--日志文件的逻辑名称 filename=C:\DB_Test\MyDatabaseTwo_log.ldf,--日志文件的实质保存路径 size=5MB,--日志文件的初始大小 filegrowth=5MB ) --此处可能会报错,是一个C盘权限的问题 --如果忘记命令,还可以通过鼠标操作生成脚本的方式查看命令 --4.在数据库中创建一张表 --在执行之前先要切换到要创建的数据库到当前 use School create table [Departments] ( ID int identity(1,1) primary key, Name nvarchar(50) not null ) --5.通过代码删除数据库和表 use School drop database [MyDatabaseTwo] drop table [Departments] --6.通过代码创建员工表 use [School]; create table Employees ( ID int identity(1,1) primary key, IDCard varchar(18) not null, Name nvarchar(50) null, Gender bit not null, JoinDate datetime, Age int, Address nvarchar(300), PhoneNumber varchar(100), DeptID int not null, Email varchar(100) ) -------------------------------------------- --7.创建学生表 create table Student ( id int identity(1,1) primary key, name nvarchar(50) not null, gender nchar(1), address nvarchar(500), age int, birthday datetime, card_id varchar(18), class_id int ) --创建班级表 create table Class ( class_id int identity(1,1) primary key, class_name nvarchar(50) ) --创建成绩表 create table Score ( score_id int identity(1,1) primary key, id int not null,--引用学生表中的学生id English float, Math float, Chinese float ) --创建老师表 create table Teacher ( teacher_id int identity(1,1) primary key, teacher_name nvarchar(50) not null, gender bit, salary money, age int, birthday datetime ) --8.向表中插入数据 /* create table Class ( class_id int identity(1,1) primary key, class_name nvarchar(50) ) */ --①自动编号列,默认自动增长,不能也不需要插入值 insert into [Class](class_name) values(.NET黑马一期) select * from [Class] --向学生表中插入一条数据 /* create table Student ( id int identity(1,1) primary key, name nvarchar(50) not null, gender nchar(1), address nvarchar(500), age int, birthday datetime, card_id varchar(18), class_id int ) */ insert into [Student](name,gender,address,age,birthday,card_id,class_id) values(刘德华,,北京市海淀区,25,1970-10-10,123652199010021012,1) --如果除自动编号列以外所有列都要插入时也可以省略列名 insert into [Student] values(郭富城,,北京市天安门,25,1988-10-10,123652569010021012,1) --向部分列插入数据 insert into [Student](name,gender,age) values(宋祖英,,25) --向自动编号列插入值 --a.需要启动某个表的"自动编号列"手动插入值的功能 --b.再次插入数据时,自动编号只会按照当前最大的编号增加 set identity_insert [Student] on --打开插入自动编号功能 insert into [Student](id,name) values(10,唐三藏) set identity_insert [Student] off --使用完后关闭插入自动编号列功能 --c.在插入字符串时如果包含中文一般在字符串引号前加上一个大写N,是为了防止"双字节字符乱码"(中文乱码) -- 在之前添加数据时,没有加N,也没有出现乱码,这跟当前的数据库排序规则有关(当前为简体中文排序规则) insert into [Student](name)values(N猪八戒) select * from [Student] --小技巧:打开和关闭查询结果窗口:Ctrl + R --9.数据更新(数据修改) --修改[Student]表中gender等于‘女‘的行的数据,年龄减一,姓名后加‘<女>‘ update [Student] set age=age-1,name=name+<女> where gender= select * from [Student] --where中可以使用的其他逻辑运算符: --or、and、not、<、>、>=、<=、<>(或!=)等 --10.删除数据 --删除表中所有数据 delete from [Student] --删除表中指定数据(删除一部分数据) delete from [Student] where gender= --删除表中的全部数据,有两种方式 --a.delete from [表名] --b.truncate table [表名] (推荐使用这中方法) truncate table [Student] --truncate的特点: --a.truncate语句不能跟where条件(无法根据条件删除,只能全部删除) --b.truncate删除可以使自动编号恢复到初始值 --c.使用truncate删除表中的所有数据要比delete效率高很多 --d.truncate删除数据,不会触发dalete触发器 --e.truncate删除数据当这个表与其他表有主外键关联时,无法删除 select * from [Student] --11.练习和整理 --创建数据库 create database [LiangshanHero] --删除数据库 drop database [LiangshanHero] --创建表 use [LiangshanHero] go create table [Hero] ( id int identity(1,1) primary key, name nvarchar(50) not null, nick_name nvarchar(50), star nvarchar(10), age int, hometown nvarchar(50), sex nchar(1), sal int ) select * from [Hero] --为表添加数据 insert into [Hero] values(宋江,及时雨,天魁星,28,山东,,6000) insert into [Hero] values(卢俊义,玉麒麟,天罡星,35,河北,,7500) insert into [Hero] values(吴用,智多星,天机星,31,黑龙江,,1000) insert into [Hero] values(公孙胜,入云龙,天闲星,32,重庆,,5000) insert into [Hero] values(关胜,大刀,天勇星,36,江苏,,3500) insert into [Hero] values(林冲,豹子头,天雄星,34,浙江,,4000) insert into [Hero] values(秦明,霹雳火,天猛星,35,上海,,5500) insert into [Hero] values(呼延灼,双鞭,天威星,33,湖南,,2800) insert into [Hero] values(花荣,小李广,天英星,24,湖北,,3400) insert into [Hero] values(柴进,小旋风,天贵星,26,广西,,4800) insert into [Hero] values(鲁智深,花和尚,天孤星,38,河南,,5000) insert into [Hero] values(武松,行者,天伤星,28,河南,,2600) insert into [Hero] values(史进,九纹龙,天微星,36,河南,,8000) insert into [Hero] values(扈三娘,一丈青,地慧星,28,云南,,7000) insert into [Hero] values(顾大嫂,母大虫,地阴星,37,贵州,,6000) insert into [Hero] values(孙二娘,母夜叉,地壮星,32,四川,,5400) insert into [Hero] values(石秀,null,null,null,null,null,null) insert into [Hero] values(燕青,null,null,null,null,null,null) insert into [Hero] values(阮小七,null,null,null,null,null,null) insert into [Hero] values(李逵,null,null,null,null,null,null) --查询所有数据 select * from [Hero] --带条件查询 select name from [Hero] where sex= select count(*) as 工资大于5000人数 from hero where sal>=5000 --更新数据 update [Hero] set sal=sal*1.1 where sal<3000 --删除指定数据 delete from [Hero] where sex= --清空表中数据 truncate table [Hero] --删除整张表(包括表结构和所有数据) drop table [Hero] --12.约束(保证数据完整性,约束是建立在表上的) --约束大致分类 --a.非空约束 --b.主键约束(PK)primary key constraint唯一且不为空 --c.唯一约束(UQ)unique constraint唯一,允许为空,但只能出现一次 --d.默认约束(DF)default constraint默认值 --e.检查约束(CK)check constraint范围以及格式限制 --f.外键约束(FK)foreign key constraint表关系 --新建一张表(无约束的表) use [School] go create table [Employees] ( id int identity(1,1), name nvarchar(50), gender char(2), age int, email varchar(100), home_address varchar(500) ) create table [Department] ( dep_id int identity(1,1), dep_name varchar(50) ) --删除表 drop table [Employees] drop table [Department] --查询数据 select * from [Employees] select * from [Department] --13.t-sql语句实现约束(手动增加约束) --新建一张表(无约束的表) use [School] go create table [Employees] ( id int identity(1,1), name nvarchar(50), gender char(2), age int, email varchar(100), home_address varchar(500) ) create table [Department] ( dep_id int identity(1,1), dep_name varchar(50) ) --增加约束------------------------------------- --手动删除一列 alter table [Employees] drop column home_address --手动增加一列 alter table [Employees] add home_address1 nvarchar(1000) --手动修改一下某列的数据类型 alter table [Employees] alter column email varchar(200) --为某列增加一个主键约束(修改表结构,增加约束,约束类型:主键约束) alter table [Employees] add constraint PK_Employees_id primary key(id) --为某列增加一个非空约束(以修改列的方式完成,增加一个not null关键字就好) alter table [Employees] alter column name nvarchar(50) not null --为某列增加一个唯一约束(唯一约束要求值不能重复,允许只能有一个空值) alter table [Employees] add constraint UQ_Employees_name unique(name) --为性别增加一个默认约束,默认值为‘男‘ alter table [Employees] add constraint DF_Employees_gender default() for gender --为性别增加一个检查约束,要求性别只能是:‘男‘ or ‘女‘ alter table Employees add constraint CK_Employees_gender check(gender= or gender=) --为年龄增加一个检查约束:年龄必须在0-120岁之间,含岁与岁. alter table [Employees] add constraint CK_Employees_age check(age>=0 and age<=120) --为部门表设置主键,主键列:dep_id(即为部门表某列增加主键约束) alter table [Department] add constraint PK_Employees_dep_id primary key(dep_id) --为员工表增加列,部门ID:dep_id alter table [Employees] add dep_id int not null --增加某张表外键约束(命令后增加:on delete cascade 可实现级联删除) alter table [Employees] add constraint FK_Employees_Department foreign key(dep_id) references Department(dep_id) --删除约束-------------------------------- alter table [Employees] drop constraint FK_Employees_Department,CK_Employees_age,CK_Employees_gender,UQ_Employees_name,DF_Employees_gender --通过一条代码来增加多个约束 alter table [Employees] add constraint FK_Employees_Department foreign key(dep_id) references Department(dep_id), constraint CK_Employees_gender check(gender= or gender=), constraint CK_Employees_age check(age>=0 and age<=120), constraint UQ_Employees_name unique(name) --创建表的同时就为表增加约束 use [School] go

人气教程排行