打开数据库
service mysqld start // 开启mysql服务端
mysql -u roou -p //客户端开启并连接服务器
//输入密码

MySQL语言一共分为四大类
DDL:数据定义语言(Data Definition Language)
操作对象:数据库/表
关键字:create(创建) drop(删除) alter(修改) show(查看)
举个栗子:
create database yyy; //创建一个名为yyy的数据库
use xxx; //表示使用xxx这个数据库,也即是切换数据库
drop database yyy; //删除
drop table yyy;//删除表yyy
那末创建表
![]()
这是我犯的一个错误,原因也在图中
那末我们应该怎末创建一个表呢,我们创建的表必须是有大于等于1个字段的(也即是属性)
比如我们创建一个学生表,里面的属性有姓名(name)性别(sex) 年龄(age)学号(id)
此时我们应该像这样加上属性,属性的名字我们一般要用英文,然后确定属性的类型

解释一下这个创建过程,首先stu1是表名字
我们把表的字段写成英文就是id name age sex 字段名字后面跟的是字段的类型,那末id的类型 应该是字符型,我们用varchar
为什莫不用char,等会解释,再说一下性别sex后面的类型,enum是枚举类型,default 为默认的意思,也即是说表中的sex属性默认为 man,,接着我们会看到每一个属性的后面都有一个COMMENT"xxxx",,这个是为了方便以后维护表,给每一个字段后面加的注释。
create table stu1
(
id varchar(10) primary key COMMENT "学生学号",
name varchar(10) not null COMMENT "学生姓名",
age int not null COMMENT"学生年龄",
sex enum("man","woman") default "man" COMMENT "学生性别"
);
接着来说一下字段属性:
PRIMARY KEY : 标示该属性为该表的主键,可以唯一的标示对应的元组
FOREIGN KEY : 标示该属性为该表的外键,是与之联系的某表的主键
NOT NULL : 标示该属性不能为空
UNIQUE : 标示该属性不能为空
AUTO_INCREMENT : 标示该属性的值自动增长
DEFAULT : 为该属性设置默认值
再来看一下字段类型都有哪些
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
数值类型

字符串
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。
char和varchar:
1.char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。
2.char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。
3.char类型的字符串检索速度要比varchar类型的快。
varchar和text:
1.varchar可指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),text是实际字符数+2个字节。
2.text类型不能有默认值。
3.varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用。

时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

二进制
布尔:bit
bit 表示1个二进制的位
bit(8) 表示8个二进制的位
性别可以定义为0,1, 而不使用male或female字符串
数据逻辑删除
某辆车在车库中停放的状态
所有基于两种状态的数据都可以使用0,1来存储.
修改表:
(1).修改字段类型
alter table stu1 modify name varchar(20);


(2).修改字段名称change
alter table stu1 change id sid carchar(10);
(3)添加新字段 add first|after
alter table stu1 add score float;
alter table stu1 add score float after sid;//再学号的后面添加一个类型为浮点型的成绩字段
(4)删除一个字段 drop
alter table stu1 drop score;
(5)修改表名 rename
alter table stu1 rename stu2;
查看表
(1)show create table tbname;//查看表的详细信息
(2)desc tbname //查看表的字段信息
DML:数据操作语言
insert,delete,update,select
1.insert 插入数据
插入全部字段属性:
insert into stu1 values("001","zhangsan",19,"man");
插入个别字段:
insert into stu1(sid,name,age,sex) values("001","zhangsan","man");
stu2(如果不写,默认为全部字段)
小批量插入:
insert into stu1 vlaues("001","zhangsan",19,"man"),
("002","lisi",20,"woman"),
("003","wangwu",21,"man"),
("004","zhaoliu",33,"man");
大批量插入数据:
2.删除数据:
delete from stu where name="zhangsan";
delete from stu;//删除表中所有数据,没有条件,,默认所有
3.修改数据
update stu set age =19;//表中所有的age都改为19;
update stu set age =19 where id="001";//把id=1的字段的年龄改为19;
4.查看数据 select
(1)普通查询
select*from stu;
select *from stu where id="001";
select sid,name,age,sex form stu;
(尽量不要用*,,用哪个字段就查找哪个字段,数据查询过程中可能会被盗取,为了保护数据安全)
(2)去重查询 distinct
查询一亿用户的年龄范围,这时可以用去重查询
select distinct age from stu;
(3)排序查询 order by asc |desc(降序)
select distinct age from stu order by age asc;//升序
(4)分组查询 group by
(5)等值查询
查询年龄未满十八周岁的学生的不及格成绩
select name score form stu where age<18 and score<60;
(6)连接查询
外连接
左连接查询
(select name,score from (select sid,name from stu where age<18) a
left jion(select sid,score from result where score<60) b on a.sid=b.sid
where score is not null) c1;
右连接查询
全连接查询
内链接查询
(7)联合查询 union(去重) union all(显示所有结果不去重)
1.全体的师生信息
select sid,name,age,sex from stu
union all
select tid,tname,tage,tsex from teach;
聚合函数 SUM COUNT
时间类型 date time datetime 时间戳
DCL:数据控制语言
自由存取控制:由管理员给普通用户分配权限
强制存取控制:划分等级
权限管理
管理员权限下:
create user "cy1706"@localhost identified by "123";//新建一个用户,没有任何权限
mysql>exit;
mysql -u cy1706 -p
123; //进入这个普通用户
1.授权 grant
管理员权限下
grant select on CY1706.* to cy1706;//让用户cy1706对CY1706数据库的所有查询权限
grant select,insert,update,delete,create on [数据库名称].* to [用户名称];–用户授权数据库
*代表整个数据库
2.回收权限 revoke
revoke select on CY1706.* from cy1706;//回收权限
反祖
root==> u1 ==> u2 ==> u3;
u3不能回收u2的权限
redo.log undo.log
总结:
DDL create drop alter show
DML insert delete update select
DCL grant revoke
本文详细介绍了MySQL数据库的使用,包括如何打开数据库、DDL(数据定义语言)、DML(数据操作语言)和DCL(数据控制语言)。内容涵盖创建、删除和修改数据库及表,字段属性、数据类型和权限管理等。
10万+

被折叠的 条评论
为什么被折叠?



