0


SQL server 数据库 sql常用语句

一、使用查询分析器-管理数据库和数据表

#1.创建数据库格式

create database databasename

on primary

(

name="databasename_data",

filename="filename\databasename_data.mdf",

size=8MB,

maxsize=100MB,

filegrowth=10%

)

log on

(

name="databasename_log",

filename="finename\database_log.ldf",

size=5MB,

filegrowth=10%

)

#2.创建数据库

create database student --创建数据库

on primary --指定数据库文件位置

(name="student_data", --指定数据库的名称

filename="d:\Dy231016\student_data.mdf", --指定数据库库文件存放的位置

size=8MB, --指定数据库库文件的初始大小

maxsize=100MB, --指定数据库库文件的最大值

filegrowth=10%) --指定数据库库文件的增长速度

log on --定义日志文件信息

(name="student_log.ldf", --指定日志文件名称

filename="D:\Dy231016\student_log.ldf", --指定日志文件存放位置

size=1MB, --指定日志文件大小

filegrowth=10%) --指定日志文件增长率

--单行注释:--

--多行注释:/* 注释内容 */

/*如果在添加数据库的时候,

不知道是否已经有数据库存在,

该如何操作?*/

#3.删除数据库

drop database databasename

#4.判断数据库是否已经存在

if exists (select * from sys.databases where name='student1') --判断系统中是否

存在该数据库

drop database student1 --如果存在,使用drop语句删除该数

据库

create database student1

drop database student1 --删除数据库

#5.创建表格式

/*创建表的格式

create table 表名(

字段1 数据类型 属性 约束,

字段2 数据类型 属性 约束,

字段3 数据类型 属性 约束

)

*/

#6.创建表

use student --切换数据库

create table stuinfo ( --创建表

stu_id varchar(20) NOT NULL, --指定表的学号字段

stu_name varchar(50) NOT NULL, --指定表的姓名字段

stu_sex char(2) NOT NULL, --指定表的性别字段

stu_age int, --指定表的年龄字段

stu_add varchar(100) --指定表的地址字段

)

--创建一个班级表

create table class(

id int identity(1,1),--设置编号自增长

cla_id varchar(20) not null,

cla_name varchar(10) not null

)

--如何决断表是否存在,如果存在将其删除。

if exists (select * from sys.objects where name='class' and type='U') --查

询表是否存

drop table class --如

果存在就将其删除

/*

表约束:

主键约束:primary key

外键约束:foreign key

默认值: default

非空: not null

检查约束:check

唯一: unique

标识:

自增长: identity

*/

--添加约束的格式

/*

alter table tablename

add constraint 约束名称 约束类型

*/

--删除约束格式

/*

alter table table name

drop constraint 约束名称

*/

--添加主键约束:

alter table stuinfo

add constraint pk_id primary key(stu_id)

--添加默认约束

alter table stuinfo

add constraint def_set default('男') for stu_sex

--添加检查约束

alter table stuinfo

add constraint ch_age check(stu_age>=0 and stu_age<=100)

--添加唯一约束

alter table stuinfo

add constraint un_addr unique(stu_add)

--修改非空约束

alter table stuinfo

alter column stu_age int not null

--设置class表的主键

alter table class

add constraint pk_cla_id primary key(cla_id)

--向已有的表中添加字段

alter table stuinfo

add cla_id varchar(20) not null

--向已有的表中添加字段

alter table stuinfo

add id int not null

--给stuinfo表中的cla_id添加外键

alter table stuinfo

add constraint for_cla_id foreign key(cla_id) references class(cla_id)

#7.删除约束

/*

删除约束格式:

alter table tablename

drop constraint 约束名称

*/

--删除主键约束

alter table stuinfo

drop constraint pk_id

--删除默认约束

alter table stuinfo

drop constraint def_set

--删除检查约束

alter table stuinfo

drop constraint ch_age

--删除唯一约事

alter table stuinfo

drop constraint un_addr

#8、创建表时直接添加约束

--创建班级表

create table class(

id int identity(1,1),

cla_id varchar(20) primary key not null,

cla_name varchar(30) not null

)

--创建学生信息表

create table stuinfo1(

id int identity(1,1) not null, --设置序号为自增长

stu_id varchar(20) primary key not null, --设置学号

stu_name varchar(40) not null, --姓名

stu_sex char(2) default('男'), --设置性别默认值为男

stu_age int check(stu_age>=1 and stu_age<=100), --设置年龄范围

stu_tel char(11) unique not null, --设置手机号不能重复

stu_add varchar(50), --地址

cla_id varchar(20) references class(cla_id)

)

#9、判断字段是否存在

--判断stuinfo表中是否存tel字段,如果有将其删除,如果没有创建。

if exists (select * from sys.columns where name='tel' and

object_id=object_id('stuinfo') ) --判断字段是否存

alter table stuinfo --更新表结构

drop column tel --删除字段

else --否则

alter table stuinfo --更新表字段

add tel varchar(11) not null --添加字段

#10、删除表

drop table tablename

--删除学生表

use Dy231010

drop table stuinfo

**二、使用查询分析器管理表 **

*1***、向表中插入单条数据 **

--向表中插入数据

--格式

/**

insert [into] <表名> [字段名称] values <字段的值> 当给出指定的字段时,字段可以是部分,也

可以全部

insert into <表名> values <字段的值 > 当省略字段项时,所给出的值列表必须与字段的位置、数

量、数据类型保持一直;

insert <表名> values <字段的值>

*/

--案例

insert class values('12345','运维实施')

insert into stuinfo1 (stu_id,stu_name,stu_sex,stu_add,stu_age,stu_tel)

values('10001','张三','男','郑州金水区',19,'12345')

insert into stuinfo1 values('10002','李四','男',19,'19','郑州金水区','12345')

*2***、向表中插入多条数据 **

#格式一

insert into <表名> values('''值1','值2','值3','值4'),('值1','值2','值3','值4')

#案例:

insert class values('1237','abcf'),('128','ad')

#格式二

insert into <表名> <字段1,字段2,字段3,字段4,字段5....>

select '值1','值2','值3','值4','值5','值6' unique,

select '值1','值2','值3','值4','值5','值6' unique,

select '值1','值2','值3','值4','值5','值6' unique,

select '值1','值2','值3','值4','值5','值6'

#案例:

insert into class (cla_id,cla_name)

select '113','aaa' union

select '114','bbb'

*3***、查询数据表内容 **

#格式

select <字段名1>,<字段2>,..<字段n> from <表名> [where 条件表达式]

#案例

#不使用条件查询

--查询整个表信息

select * from stuinfo1

--查询部分表 信息

select stu_id,stu_name from stuinfo1

#使用条件查询

--查询学生信息表中名字叫张三的学生信息

select * from stuinfo1 where stu_name='张三'

--查询学生信息表中年龄大于20岁的学生信息

select * from stuinfo1 where stu_age>20

--查询学生信息表中性别为男性的学生的姓名,手机号

select stu_name,stu_tel from stuinfo1 where stu_sex='男'

select stu_name,stu_tel from stuinfo1 where stu_sex<>'女'

--查询学生信息表中年龄大于20岁并且性别为男的学生信息

select * from stuinfo1 where stu_age>20 and stu_sex='男'

--查询学生信息表中年龄大于20岁或性别为男的学生信息

select * from stuinfo1 where stu_age>=20 or stu_sex='男'

--模糊查询

--查询学生信息表中姓张学生的信息。模糊查询:like 通配符:%表示0个或多个字符 _:表示一个字

符;

select * from stuinfo1 where stu_name like '张%'

select * from stuinfo1 where stu_name like '李%'

select * from stuinfo1 where stu_name like '李_'

--区间查询

--查询年龄在18-22岁之间的所有学生信息;between and (包含界值)

select * from stuinfo1 where stu_age between 18 and 22

--in 子查询

--查询年龄在一个范围之内的学生信息;(1,5,7,18,20,22,30,50)

select * from stuinfo1 where stu_age in(1,5,7,18,20,22,30,50)

#子查询

select * from stuinfo1 where stu_age in(select stu_age from stuinfo1 where

stu_age>18 and stu_age<22)

--not in 子查询:不在某个范围之内

select * from stuinfo1 where stu_age not in(1,5,7,18,20,22,30,50)

--null:空值 表示时,使用is null 表示某个值为空值;

select * from stuinfo1 where cla_id is null

--is not null 表示某个值不为空值;

select * from stuinfo1 where cla_id is not null

*4***、表更新操作 **

/*

表数据更新:格式

update <表名> set 字段名=值 [where 条件表达式]

*/

--将所有学生的年龄加1岁

select * from stuinfo1

update stuinfo1 set stu_age=stu_age+1

select * from stuinfo1

select * from class

--将张姓学生的班级修改为1236

select * from stuinfo1 where stu_name like '张%'

update stuinfo1 set cla_id='1236' where stu_name like '张%'

*5***、表备份操作 **

/*

给表做备份:

insert into <新表名> [字段名] select 字段名 from <原表名> [where 条件表达式;该方式备份

表,新表必须提前创建好

select [字段] into <新表名称> from <原表名> 注意:该方式备份,新表不需要提前创建;

*/

select * into stuinfo from stuinfo1

insert into stuinfo1(stu_id,stu_name,stu_sex,stu_age,stu_tel) select

stu_id,stu_name,stu_sex,stu_age,stu_tel from stuinfo

select * from stuinfo

select * from stuinfo1

*6***、表删除操作 **

/*

删除数据:delete

delete from <表名> [where 条件表达式]

truncate table <表名>

delete删除时,如果有自增长列,再添加数据时,不会从头开始;

truncate删除时,如果有自增长列,再添加数据时,自增长列会从头开始;

drop 删除表时,表结构和内容全部删除。

*/

delete from stuinfo1

delete from stuinfo1 where stu_age=20

select * from stuinfo1

truncate table stuinfo1

标签: 数据库 sql sqlserver

本文转载自: https://blog.csdn.net/m0_71071763/article/details/135114875
版权归原作者 高hongyuan 所有, 如有侵权,请联系我们删除。

“SQL server 数据库 sql常用语句”的评论:

还没有评论