创建数据库
create database myschool
create database myschool
2.数据类型
1.整型 int
2.小数 double
精确度要求高的 ----Decimal(18,4)
22222222211111.3334
对应的java中的类型 BigDecimal
1.整型 int
2.小数 double
精确度要求高的 ----Decimal(18,4)
22222222211111.3334
对应的java中的类型 BigDecimal
3.字符串:nvarchar(32) varchar char
char :定长字符串(一旦设定了长度,无论真实内容有多少,都要占用指定长度的空间。)
varchar:可变字符串
nvarchar() 防止中文乱码出现 insert into grade(gradename) values(N'牛X班')
char :定长字符串(一旦设定了长度,无论真实内容有多少,都要占用指定长度的空间。)
varchar:可变字符串
nvarchar() 防止中文乱码出现 insert into grade(gradename) values(N'牛X班')
4.日期类型
DateTime yyyy-mm-dd hh:mm:ss.ms
DateTime yyyy-mm-dd hh:mm:ss.ms
2.创建数据表
create table student
(
sid int primary key auto_increment not null,
sname nvarchar(32)
)
#添加记录和SQL 一样 ,表中2列,你能不能
insert into student(gradename) values('XXX班级')
create table student
(
sid int primary key auto_increment not null,
sname nvarchar(32)
)
#添加记录和SQL 一样 ,表中2列,你能不能
insert into student(gradename) values('XXX班级')
1.真实的做表过程
1.定制表结构
2.添加约束 (唯一约束 检查约束 主键约束 外键约束 默认值约束)
3.伪造记录 测试数据
1.定制表结构
2.添加约束 (唯一约束 检查约束 主键约束 外键约束 默认值约束)
3.伪造记录 测试数据
3.约束添加
主键约束
alter table grade
add constraint PK_GradeId Primary key grade(gradeid)
主键约束
alter table grade
add constraint PK_GradeId Primary key grade(gradeid)
--删除主键
#取消主键列的自增,再删除主键
ALTER TABLE student MODIFY studentno INT
#取消主键列的自增,再删除主键
ALTER TABLE student MODIFY studentno INT
#删除主键
ALTER TABLE student DROP PRIMARY KEY
ALTER TABLE student DROP PRIMARY KEY
外键约束
alter table student
add constraint FK_Grade_Student_GradeId Foreign key (gradeid) referrences grade(gradeid)
add constraint FK_Grade_Student_GradeId Foreign key (gradeid) referrences grade(gradeid)
---删除外键 界面上(图形化界面)直接点击无效 (1.先用如下命令删除 2.再点击鼠标删除)
alter table student
drop foreign key FK_Grade_Student_GradeId
alter table student
drop foreign key FK_Grade_Student_GradeId
唯一约束 年级名称唯一()
alter table grade
add constraint UK_Gradename UNIQUE Key(gradename)
---删除唯一约束
alter table grade
drop index UK_Gradename
alter table grade
add constraint UK_Gradename UNIQUE Key(gradename)
---删除唯一约束
alter table grade
drop index UK_Gradename
默认值约束
alter table grade
alter column gradename set default 'X班'
alter table grade
alter column gradename set default 'X班'
--删除语法
alter table grade
alter column gradename drop default
alter table grade
alter column gradename drop default
检查约束 mysql中不起作用
alter table student
add constraint CK_GradeID Check(gradeid<7)
alter table student
add constraint CK_GradeID Check(gradeid<7)
--无法删除
4.一个问题
有人不会设置外键?
解析:1.找到外键表 1的一方是主表
2.外键表中有非法数据
3.主外键表中公共列的类型必须相同
4.一个问题
有人不会设置外键?
解析:1.找到外键表 1的一方是主表
2.外键表中有非法数据
3.主外键表中公共列的类型必须相同
5. 默认值约束
alter table grade
alter column 列名 set default '默认值'
alter table grade
alter column 列名 set default '默认值'
7.什么是引擎?
解析:能让程序启动并执行的一个程序,也称之为驱动。
搜索引擎指自动从因特网搜集信息,经过一定整理以后,提供给用户进行查询的系统。
因特网上的信息浩瀚万千,而且毫无秩序,所有的信息像汪洋上的一个个小岛,
网页链接是这些小岛之间纵横交错的桥梁,而搜索引擎,则为用户绘制一幅一目了然的信息地图,
供用户随时查阅。它们从互联网提取各个网站的信息(以网页文字为主),建立起数据库,
并能检索与用户查询条件相匹配的记录,按一定的排列顺序返回结果。
解析:能让程序启动并执行的一个程序,也称之为驱动。
搜索引擎指自动从因特网搜集信息,经过一定整理以后,提供给用户进行查询的系统。
因特网上的信息浩瀚万千,而且毫无秩序,所有的信息像汪洋上的一个个小岛,
网页链接是这些小岛之间纵横交错的桥梁,而搜索引擎,则为用户绘制一幅一目了然的信息地图,
供用户随时查阅。它们从互联网提取各个网站的信息(以网页文字为主),建立起数据库,
并能检索与用户查询条件相匹配的记录,按一定的排列顺序返回结果。
个人理解:在软件行业中,能给程序员提供工具类型的帮助的代码集锦等小工具。可以看成是一个引擎。
8.修改表
8.1 我有一张学生表
SQLServer 中 studentbak
select * into 新表名 from student
SQLServer 中 studentbak
select * into 新表名 from student
MYSql 中 studentbak
create table 新表
select * from 旧表
create table 新表
select * from 旧表
一次性向表中走N条记录
Sql Server:
insert into s2229(LoginPwd, StudentName, Gender, GradeId, Phone, Address, Birthday, Email)
select LoginPwd, StudentName, Gender, GradeId, Phone, Address, Birthday, Email from student
insert into s2229(LoginPwd, StudentName, Gender, GradeId, Phone, Address, Birthday, Email)
select LoginPwd, StudentName, Gender, GradeId, Phone, Address, Birthday, Email from student
Mysql:
insert into s2229(LoginPwd, StudentName, Gender, GradeId, Phone, Address, Birthday, Email)
select LoginPwd, StudentName, Gender, GradeId, Phone, Address, Birthday, Email from student
insert into s2229(LoginPwd, StudentName, Gender, GradeId, Phone, Address, Birthday, Email)
select LoginPwd, StudentName, Gender, GradeId, Phone, Address, Birthday, Email from student
删除 之delete 和Truncate 巅峰对决
VS1:delete 可以有where ,删除部分记录 ,Truncate 一删除所有记录
VS2: delete 删除后可以恢复,记录日志 Truncate 删除后不可恢复,不记录日志
VS3: delete 删除效率低一些 Truncate 删除速度快,效率高
VS4:delete 删除后编号会接着上次最大值 Truncate 截断表:编号从1开始