MySQL入门
基础背景知识
08年被sun公司收购,09年被Orcal收购
是一个支持 多线程 高并发 多用户的关系型数据库管理系统
优点:
1.开放源代码
2.跨平台
可以在不同的操作系统下运行
3.轻量级
4.成本低
分为社区版(免费)和企业版(收费)
社区版功能并不弱,只不过从稳定性的角度来讲,比不上企业版
SQL语言分为五个部分:
1.DQL数据查询语言(Query)
主要用于数据的查询(select)
2.DML数据操作语言(Manipulation 对表里面的数据进行修改)
INSERT :插入数据
UPDATE :更新数据
DELETE :删除数据
3.DDL数据定义语言(Definition 对数据库和表进行修改)
CREATE :创建表
ALTER :更改表的结构
DROP:删除表
4.DCL数据控制语言(Control 用来授予或回收访问数据库的权限)
GRANT 授予用户某种权限
REVOKE 回收授予的某种权限
5.TCL事务控制语言(Transaction Control用于数据库的事务管理)
一、DDL和DML
mysql数据库中常用的数据类型;
1.整数类型:
INT占4个字节
int(6),不管括号里写几,都占4个字节,括号里表示的是整数值的显示宽度,指定小了没关系,会突破。
2.浮点类型:
float 4字节
double 8字节
浮点类型的宽度不会自动扩充
3.字符类型:
字符串类型 | 大小 | 说明 |
---|---|---|
char(M) | 0~255字符 | 允许长度0~M个字符的定长字符串 |
varchar(M) | 0~65535字符 | 允许长度0~M个字符的不定长字符串 |
blob | 二进制形式的文本数据(可以用来存照片) | |
txt | 长文本数据 |
varchar类型能够根据字符串的实际长度来动态改变所占字符的大小
推荐在不能明确表示该字段具体需要多少字符时使用varchar类型
可以大大节约磁盘空间,提高存储效率
注意:
char和varchar表示的是字符的个数,而不是字节的个数
4.日期和事件类型:
date YYYY-MM-DD
datetime YYYY-MM-DD HH:MM:SS
创建数据库表
创建学生表
字段包含学号、姓名、性别、年龄、入学日期、班级、email等信息
create table student(
sno int(6),
sname VARCHAR(10),
sex CHAR(1),
age int(3),
enterdate date,
classname varchar(10),
email varchar(15)
);
-- 查看表的结构
desc student
-- 查看表的数据
select * from student
-- 查看建表语句
show create table student
DML:
添加、更新、删除、数据
1.insert
insert into student values();
INSERT INTO student values(1,'张三','男',23,'1999-12-23','java001','zhangs@163.com');
INSERT INTO student values(1,'张三','男',23,'1999-12-23','java001','zhangs@163.com');
INSERT INTO student values(2,'李四','男',24,'1999/12/23','java001','lis@163.com');
INSERT INTO student (sno,sname,sex,classname)VALUES(3,'王五',"男",'java002');
注意:1.添加的值不能大于设定的长度
2.如果不加约束则可以加入相同的数据
3.不区分单双引号,日期有多种写法
4.字段与值要匹配,字段与值一一匹配 (建议插入时使用最后一句这种形式)
2.update
--将学号为2的学生的性别更新为女
update student set sex='女' where sno=2
--将学号为2的学生的性别更新为男,年龄更新为25,班级更新为空
update student set sex='男',age =25,classname=null where sno=2
3.delete
DELETE FROM student WHERE classname='JAVA002'
注意:
1.关键字、表名、字段名不区分大小写
2.MySQL的delete语句中from不可少
DDL:
1.alter
修改表的结构
-- 增加一列(默认增加到最后一列) 5 总的位数 2 小数位数
ALTER table student add score double(5,2)
-- 添加数据后发现保留了两位小数
update student set score =123.4567 where sno=1
-- 增加一列到第一列
alter table student add score double(5,2) FIRST
-- 添加一列到enterdate(某一列)后面
alter table student add score double(5,2) after enterdate
-- 删除一列
ALTER table student DROP score
2.drop
-- 删除student表
drop table student