sql语句不区分大小写
注意:往mySql数据库中不能插入汉语时
Mysql配置文件: “在my.ini里找到sql- mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'把其中 的STRICT_TRANS_TABLES,去掉,或者把sql- mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION注释掉,然 后重启mysql就ok了”
创建数据库
create DATABASE liangshan
创建表
create table hero(
HeroId int,
HeroName VARCHAR(50),
HeroNickName VARCHAR(50),
sex char(2)
)
但是这种情况非常可能将表建在其他的数据库中,所以建议使用以下方式
USE test
go
create table hero(
HeroId int,
HeroName VARCHAR(50),
HeroNickName VARCHAR(50),
sex char(2)
)
使用sql语句来添加数据
(插入语句)
INSERT INTO hero VALUES(1,'宋江','及时雨','男')
使用sql语句来查询数据
1、(查询语句)
select * from heronew
2、查询工资低于100的
SELECT * from heronew where sal<100
(update语句)
3、工资低于100的人的薪水提高10%(update语句)
UPDATE heronew SET sal=sal+sal*0.1 WHERE sal<100
3、工资低于100的人的薪水提高10%,且变为女的(update语句)
UPDATE heronew SET sal=sal-sal*0.1 ,sex='女' WHERE sal<1000;
(delete语句)
4、删除性别为女的(delete语句)
DELETE FROM heronew WHERE sex='女';
删除表
1、把表的结构和表的数据一起删掉
drop table hero;
2、只删除表内的数据
delete table hero;
表的管理
表明和列的命名规则:
必须以_或者字母开头,不能以数字开头;
不适用sql语句的关键字和保留字来命名;name是保留字
不超过128个字符;
各种编码格式:
unicode码的特点:用两个字节表示一个字符(可以是英文字母,也可以是汉字),导致对汉字支持比较,
非unicode编码特点:用一个字节表示表示一个字母用两个字节表示一个汉字
big5支持繁文iso-8859-1支持欧文
gb2312 国标码
gbk 可以支持更多的汉字
mysql支持的数据类型:
1、字符类型
char 定长 非unicode编码(最大存储8000个字符) 最多存8000个字符,4000个汉字
char(10) ‘小寒’ 定长的,后边的6个字符虽然为空,但是仍然占据内存
varchar 变长 非unicode编码(最大存储8000个字符) 最多存8000个字符,4000个汉字
varchar(10) ‘小寒’变长的,后边的6个字符为空,被系统自动回收
nchar 定长 使用uincode编码最大存储4000字符
nvarchar 变长使用uincode编码最大存储4000字符 中文 长度不超过4000
ntext 可变长度unicode数据 最大长度为2的30次方-1
text 可变长度非uniceod数据 2的31次方-1
既然varchar这么优秀,为什么还要用char?
在这种情况下,应当使用char:存放学号,所有的学号都是6位的,这时要用char,使用char的效率会较高。在查询的时候会6位一起匹配
2、数字型
1、bit 范围0-1
2、int 范围 负的2的31次方到正的2的31次方-1
3、float 存放小数 不推介使用 float(3)指定保留3位小数
4、numerical 小数可以 推介使用 可以指定两个数 精度、小数位数
numeric(10,2)整个数字的长度是10,小数位占2位 会自动截断所以numeric甚至可以表示整数
3、日期类型
datetime(表示时间)
timestamp(时间戳)
4、图片
但是用的很少,在数据库里保存的是图片的地址,真正的图片保存在服务器上,每一个大型的服务器背后都有一个大的服务器群(图片服务器,带宽足够的大)
在什么情况下图片一定要放在数据库里边?
在对图片有安全要求时,,而且这个图片不要太大,可以考虑放入数据库上,而不是图片服务器上
5、视频
网站上方的是一张图片,点击播放的时候在去访问视频所在的服务器上 ,当非要往数据库里边放到额时候,binary字段可以存放
公司管理系统:
主键:可以唯一的标识一条记录,主键不能够重复出现,任何一种类型都能做主键,主键不能重复,而且必须给值
创建表,主键可以被修改为不存在的主键,但是绝对不能改为存在的主键
外键:1、只能指向主键,2、外键和他指向主键的类型要一致
create TABLE clerk(cleId int PRIMARY KEY,cleName nvarchar(30),age INT ) //cleId为主键不能重复
插入数据
1、INSERT into clerk VALUES (1,'贾宝玉',18)
2、 //插入部分字段,在表明后指定字段列表,但是一定要插入主键
INSERT INTO clerk(cleId,cleName) VALUES(3,'林黛玉')
3、修改一个字段 把贾宝玉的年龄修改为38
updte clerk set age=38 where cleName='贾宝玉'
4、把2号改为薛蟠 年龄40
UPDATE clerk SET age=40,cleName='薛蟠' WHERE cleId=2
5、修改年龄为空的人改为'薛宝钗' is null 判断是否为空
UPDATE clerk SET cleName ='薛宝钗' WHERE age is null;
6、删除全部数据
delete from 表名
7、删除指定数据 多个条件 and 删除年龄大于等于70 并且小于等于90 的人(and)或 or
delete form 表名 where 字段名='值' and 字段名='值'
配置mysql字符集
1、http://www.2cto.com/database/201308/236961.html
2、http://zhidao.baidu.com/link?url=4VNBWemj_ktO7298LXwWhmrca3mfr1rge_fEdgXhdZp3TtJpYvqpQeNAWLxT8lsV1GleAt4XqixUoqNxYuLD0-Oud3R9B_4RScmnvAkN0j_