|
一.DDL
--建立数据库
CREATE DATABASE test
ON ( --数据文件
NAME=test_dat.mdf, --数据库名
FILENAME='d:\test_dat.mdf', --数据库文件绝对路径 默认是在安装文件下
SIZE=5MB, --指定大小 默认为1MB 最小值为 512KB
MAXSIZE=20MB, --指定是文件最大值 ,UNLIMITED 表示不限大小
FILEGROWTH=15% --指定文件增长大小,默认值为10% ,最小值为64KB
)
LOG ON ( --数据日志文件
NAME=test_log.ldf,
FILENAME='d:\test_dat.ldf',
SIZE=2MB,
MAXSIZE=5MB,
FILEGROWTH=5%
)
--修改数据库
ALTER DATABASE test --添加数据文件
ADD FILE (
NAME=test2_dat.ndf,
FILENAME=d:\test2_dat.ndf
SIZE=4MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=4MB
)
ALTER DATABASE test REMOVE FILE test2_dat.ndf --删除数据库次文件
ALTER DATABASE test MODIFY FILE ( --修改数据库文件
NAME=test2_dat.ndf ,
NEWNAME=newtest2_dat.ndf,
SIZE=8MB
)
DROP DATABASE test2,test --删除数据库
-- 建立表
CREATE TABLE student (
studentID varchar(10) not null,
name varchar(8) not null,
sex char (2) null,
password varchar(15) not null,
grade varchar (6) null ,
speciality varchar (6) null,
phoneNumber varchar (15) null,
credit real null,
CONSTRAINT PK_student_studentID PRIMARY KEY ( studentID), --
CONSTRAINT CK_student_studentID CHECK ( LIKE '[0-9][0-9][09][0-9][0-9]),
CONSTRAINT CK_student_credit CHECK ( credit>0.5 AND credit<-100) --建立字段约束
)
CREATE TABLE course (
courseID varchar(4) not null,
teacherID varchar(4) not null,
courseName varchar(10) not null,
courseClass varchar(8) not null,
courseCredit real nout null,
CONSTRAINT PK_course_courseID PRIMARY KEY ( courseID ), --表级主键
CONSTRAINT FK_course_teacherID FOREIGN KEY ( teacherID) --关联外键
)
CREATE TABLE teacher (
teacherID int IDENTITY(1,1) PRIMARY KEY not null, --列级主键
name varchar (10) not null,
position varchar (9) null
)
CREATE INDEX index_name on teacher(teacherID ,DESC) --建立索引
DROP INDEX teacher index_name --删除所以
ALTER TABLE teacher alter coulmn name varchar(8) --修改字段
ALTER TABLE teacher ADD sex varchar(2) --加入字段
DROP TABLE teacher --删除表
二.DML
1.单表操作
INSERT teacher (name,sex) VALUES ('xiaolu','male') --插入值
UPDATE teacher SET position='professor',sex='female' WHERE name='xiaolu' --修改记录
DELETE teacher WHERE name='xiaolu' --删除记录
SELECT GETDATE() --当前时间
SELECT UPPER('abc') --ABC
SELECT LOWER('ABC') --abc
SELECT RTRIM('ABC ') --去除右边的空格
SELECT LTRIM(' ABC') --去除左边的空格
SELECT LTRIM(RTRIM(' ABC ') --去除首尾的空格
SELECT 123 --123
SELECT 123+456 --579
SELECT '123'+'456' --123456
SELECT GETDATE() AS 当前日期 FROM tablename --表中有几条记录就返回几条结果
SELECT @@VERSION --当前数据库版本
SELECT @@ERROR --检测是否有SQL syntax error
SELECT @@ROWCOUNT --返回执行影响的行数
SELECT *FROM tablename --表中所有记录
SELECT name ,sex FROM student --表中指定列记录
SELECT DISTINCT name FROM student --去掉重复的记录
SELECT 'china' AS nationality ,name
,sex,LTRIM(LTRIM(str(credit)))+'分' AS credit FROM student
/*加入一列 字段名 nationality'其值为 china; 将字段credit 字段中的值加一个字符‘分’单位*/
SELECT column1,column2,......,cloumnN FROM table_name (
WHERE column1='***' -- 单一条件查询
)
SELECT column1,column2,......,cloumnN FROM table_name (
WHERE column1 IS NULL -- NULL条件查询
)
SELECT column1,column2,......,cloumnN FROM table_name (
WHERE column1='***' AND WHERE column2='****' -与条件查询
)
SELECT column1,column2,......,cloumnN FROM table_name (
WHERE column1='***' OR WHERE column2='****' -或条件查询1
)
SELECT column1,column2,......,cloumnN FROM table_name (
WHERE column3>=m AND column3<= n --范围条件查询1
)
SELECT column1,column2,......,cloumnN FROM table_name (
WHERE column3 BETWEEN m AND n ----范围条件查询2
)
SELECT column1,column2,......,cloumnN FROM table_name (
WHERE column4 IN (i,j,k) -或条件查询
)
SELECT column1,column2,......,cloumnN FROM table_name (
WHERE column4 LIKE %某字符% -全包含通配符条件查询
)
SELECT column1,column2,......,cloumnN FROM table_name (
WHERE column4 LIKE 某字符% --通配符开头条件查询
)
SELECT column1,column2,......,cloumnN FROM table_name (
WHERE column4 LIKE %某字符 -通配符结尾条件查询
)
SELECT column1,column2,......,cloumnN FROM table_name (
WHERE column4 LIKE %某字符 -结尾包含条件查询
)
SELECT column1,column2,......,cloumnN FROM table_name (
WHERE column4 LIKE 某字符_ -某字符后面必须有且有个字符条件查询
)
当然这些WHERE 条件 查询 都可以可以 加入 NOT 关键字(但是不推荐使用,因为很可能影响效率) 比如:
SELECT column1,column2,......,cloumnN FROM table_name (
WHERE column4 NOT LIKE 某字符_ -某字符后面必须有且有个字符条件查询
)
/*聚合函数*/
SELECT AVG(column5) AS 'column' FROM tablename WHERE column6='**' --求一个数值型列的平均值
SELECT COUNT(*) AS 'column' FROM tablename WHERE column2='**' --计算指定列中选择选择的项数
SELECT column1 , MAX(column2)AS 'column' FROM tablename
--计算指定列中最大的值
SELECT column2 ,MIN(column1) AS 'column' FROM tablename
--计算指定列中最小的值
SELECT SUM(column1) AS 'column' FROM tablename
--计算指定列中的总合
/*排序*/
SELECT * FROM student ORDER BY class DESC
-- 以‘班级’的降序排列‘学生表’中所有记录
SELECT * FROM student ORDER BY class ASC,score DESC
--以‘班级’的升序和‘学分’的降序排列‘学生表’中所有记录 |
|