进入本地的MySQL库
MySQL -hlocalhost -uroot -p(数据库密码) 某某库(可省略)
MySQL命令 -h服务器 -u用户民 -p密码 (连接本机时-h可以省略)
进入之后可以有的操作:
注意: 1.命令输入时末尾处一定要加分号
2.在命令打错时可以用 \c 来放弃当前编写
3.在创建表,库,字段名时不能重复
学数据库要明白的简写:
DDL 数据定义语言(create alter drop)
DML 数据操作语言(insert undate delete)
DCL 数据控制语言(grant revoke)
DTL 数据事物语言(commit rollback savepoint)
库的操作:
1) show database(); #显示服务器所有的库
2) select database(); #显示当前所在的库
+------------+
| database() |
+------------+
| NULL |
+------------+ #你还没有进入库
3) create database xxx; #创建一个xxx库
4) drop database xxx; #删除xxx库
5) use xxx #进入xxx库
----------------------------分割线----------------------------------
首先进入一个库
注意:1.在某个库下,表的操作可省略库名!!
2.下面xxx代表一个库的名字
3.下面yyy代表xxx库下的一个表
表的操作:
1) show table; #显示库中所有的表
2) desc xxx.yyy; #查看库xxx表中的yyy的表格式
3) select * from xxx.yyy\G; #查看表的全部内容 (在末尾处加 \G 可以格式化显示)
4) create table xxx.yyy(
字段名 类型(宽度) 约束条件,
字段名 类型(宽度) 约束条件,
......); #创建表yyy时,同时添加yyy表的属性
5) drop table xxx.yyy #删除表
6) select * from xxx.yyy where 字段名=字段值; #根据具体条件查找信息
------------------------------------分割线-------------------------------------
表中的操作:
insert into xxx.yyy valuse(......); #向表中写元素 (表中有多少属性写多少元素)
select 字段名,字段名 from xxx.yyy\G; #查看表中某几个字段的信息 (末尾后加\G可以格式化显示)
delete from xxx.yyy; #清空表空元素
修改表结构:
1) alter table xxx.yyy add 字段名 类型(宽度) 约束条件,add 字段名 类型(宽度) 约束条件....;
#添加一个或多个字段 默认添加到最后
"约束条件后 first" 可以把新的字段放到表的最前端
"约束条件 after 字段名" 可以把新的字段放到指定字段后
2) alter table xxx.yyy drop 字段名; #删除字段
3) alter table modify 字段名 类型(宽度) 约束条件; #修改字段类型 (不能和表中的数据冲突)
4) alter table change 原字段名 新字段名 新类型(宽度) 新约束条件; #修改字段名以及属性
表中索引的建立:(索引的建立可以更有利查询表中信息)
在建表时创建索引:
普通索引:(index 可多个,key:MUl)
create table 表名(......,index(字段名),index(字段名)...); #创建一个或多个普通索引
drop index 字段名 on 表名; #删除普通索引
create index 索引名 on 表名(字段名); #在已有表中间里普通索引 通常:索引名和字段名一样
唯一索引:(unique 可多个,key:UNI)
create table 表名(......,unqiue(字段名),unqiue(字段名)...); #创建一个或多个唯一索引
drop unqiue 字段名 on 表名; #删除唯一索引
create unique index 索引名 on 表名; #在已有表中建立唯一索引unique
主键:(primary key 一个 key:PRI)
create table 表名(......,primary key(字段名)); #创建一个主键
drop table 表名 add primary key(字段名); #删除主键
alter table 表名 add primary key(字段名); #在已有数据的表中添加主键
auto_incerment #自增长 通常在主键后 主键为数字类型
复合主键:
create table 表名(......,primary key(字段名,字段名)); #创建一个复合主键
复合主键字段值不能同时重复
外键foreign key:(存储引擎必须是innodb,给表中字段值时字段的值对应另一张表
create table 表名1(...字段名 类型(宽度) 约束条件,...,
foreign key 字段名 references 表2.字段名 on update cascade)engine=innodb;
表2字段名为主键 engine是存储引
同步删除 #delete from 外键表 where 字段名=值;
同步更新 #update 外键表 set 列名=XX where 外建表字段名=新XX;
----------------------------------------分割线-------------------------------------
show engines; 查看数据库可用的存储引擎 默认存储引擎为Innodb
修改表:
update 库.表 set 字段名=值,字段名=值...where 条件; #把具体条件下的表 字段名修改成新的值
delete from 库.表 where 条件; #根据具体条件删除数据
alter table 源表名 rename to 新表名 #修改表名
create table x2 select * from x1; #把x1表复制到x2表
select * from 表名 limit 2; #显示表中数据的前2行