数据库管理
SQL语言分类
DDL
数据定义语言,用于创建数据库对象,如库、表、索引等
- create 创建
create database/table; 数据库/表
create table 表名 (括号内添加类型和字段);- drop 删除
drop database/table; 数据库/表
DML
数据操纵语言,用于对表中的数据进行管理
- insert 插入数据
- insert into 表名 (字段1 类型,字段2 类型......) values (字段1的值,字段2的值......);
- insert into 表名 values (字段1的值,字段2的值......);
- update 更新、修改 表中的数据
- update 表名 set 字段1=字段1的新值,字段2=字段2的新值 where 条件表达 需要修改旧的数据记录;
- delete 删除数据
- 条件删除
delete from 表名 where 条件表达 需要删除的哪条记录;- 删除整个表数据(慎用)
delete from 表名;
DQL
数据查询语言,用于从数据表中查找符合条件的数据记录
- select 查询
- select 字段1,字段2..... from 表名 where 字段1=值
- select *(全部字段) from 表名 where 字段1=值
DCL
数据控制语言,用于设置或更改数据库用户或角色权限
- alter 修改
- 修改表名
alter table 旧表名 rename 新表名;- 新增 修改表结构
alter table 表名 add 字段 类型;
常用的数据类型
类型 | 解释 | 举例 |
---|---|---|
int | 整型 | 用于定义整数类型的数据(1、2、3、4、5…) |
float | 单精度浮点(4字节32位) | 准确表示小数点后六位 |
double | 双精度浮点(8字节64位) | 小数位更多,更精确 |
char | 固定长度的字符类型 | 定义字符长度(存的少,会补空格,存的多被截取,高版本报错) |
varchar | 可变长度的字符类型 | 定义字符最大长度(存的小,总长度变小,存的大于最大,报错) |
text | 文本 | |
image | 图片 | |
decimal (5 , 2) | 总共5个有效长度数字,小数点后面有两位 |
Mysql 基础语句操作
设置密码、登录数据库
mysqladmin -u root -p password "123" #给数据库设置密码(后面的回车)
mysql -uroot -p "123" #直接登录数据库
mysql -u root -p #登录数据库,输入密码后完成登录
查看数据库结构
show databases; #查看有多少数据库
use mysql #进入一个数据库中
show tables; #查看该数据库中有多少个表
查看数据库结构
desc njzb; #显示表的结构
查看表的结构前,首先要创建这个表
DDL语句:定义数据中的操作
create —— 创建
create database school; #创建一个名为school的数据库create table ky11 (id int(10) not null,name varchar(40) not null,age int (3) not null,score decimal(5,2) default '0',primary key (id)); #创建一个名为ky11的表,(定义id不为空,名字不为空,年龄不为空,成绩可为空默认为“0”,主键为id)create table scholl.ky21 (id int(10) not null); # 在任意库中创建school库中的ky11表
drop —— 删除
drop database school #删除一个名为school的数据库drop table ky10 #删除一个ky10的表
drop table nanjing.ky10 #可以在别的数据库中删除指定数据库中的表
DML语句 :管理表中的数据记录
insert —— 插入
insert into ky10 (id,name,age,score) values(1,'zhangsan',18,75);
#向ky10表中插入字段并对应着字段的值insert into ky10 values(2,'lisir',18);
#向ky10表中根据结构插入数值,前面字段可省略insert into ky10 values(3,'wanger',20,67),(4,'mazi',22,90);
#批量添加表中更多数据(前面的字段不写为默认)
update —— 更新
update ky10 set name='guan',age=35 where name='zhanger';
#将字段name为zhanger的,name和age进行修改。update ky10 set name='peng',age=24 where id>2;
#将id大于2的记录进行修改。
delete —— 删除
delete from ky10 where name='ydq'; #删除ky10表中name为ydq的记录delete from ky10 where id>4; #删除ky10表中id大于4的记录delete from ky10; #删除ky10表中所有记录(谨慎操作)
DQL语句:查询数据记录 - select
select —— 查询
select * from ky10; #查看整个表的所有记录
select id,name from ky10; #查看整个表中的id,name字段
select id,name from ky10\G; #友好查看整个表的id,name,
select id,name,score from ky10 where name='machao'; #查看name为machao的id,namescore
select id,name from ky10 where score>80; #查看分数值大于80分的字段id,name ,
select * from ky10 limit 2; #查看前二行
select * from ky10 limit 2,3; #显示第2行后的3行。(不包括第2行)
DCL语句:数据控制语言 - alter
alter —— 修改
alter table ky20 rename yyy;
alter table yyy rename ky20;
格式:alter table 表名 change 旧列名 新列名 数据类型 【unique key】;
unique key :唯一键(特性:唯一,但可以为空,空值只允许出现一次)
primary key:主键(特性:唯一且非空)