一、MySql常用指令
1、创建数据库
mysql> create DATABASE 数据库名;
2、删除数据库
mysql> drop database 数据库名;
3、选择数据库
mysql> use 数据库名;
4、创建数据表
create table table_name (column_name column_type);
示例:
CREATE TABLE IF NOT EXISTS students
(
id INT UNSIGNED AUTO_INCREMENT, //AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
name VARCHAR(100) NOT NULL,
age VARCHAR(40) NOT NULL, //not null : 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
tel char(11) NOT NULL,
PRIMARY KEY (id) //PRIMARY KEY关键字用于定义列为主键。 可以使用多列来定义主键,列间以逗号分隔。
)ENGINE=InnoDB DEFAULT CHARSET=utf8;//ENGINE 设置存储引擎,CHARSET 设置编码。
5、删除数据表
mysql> DROP TABLE 数据表名
6、往数据表添加数据(插入数据)
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
插入完整的行 ,示例:
insert into students
(id,name,age,tel)
values
(1,"mike",20,"15623552356");
7、检索数据
select column_name,column_name
from table_name
[where Clause]
[LIMIT N][ OFFSET M]
例1. 检索所有列, 输入select * from students;
得到刚刚创建的表:
例2. 检索单个列,输入 select name from students;
得到如下:
例3. 检索多个列,输入 select name,age from students;
得到:
例4. 限制结果
1、limit (限制数据显示的总行数)
select * from students limit 5;
这个语句只会显示整个表的前5行。
select * from students limit 3,6;
该语句从表的第4行开始显示,总共显示6行
2、offset (规定数据开始显示的偏移量)
select * from students offset 2;
执行上述语句会从第3行开始显示
8、where子句 (条件判断)
select field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
-
where通常用于delect和update命令中,用于筛选
-
可以使用 AND 或者 OR 指定一个或多个条件。
select * from students where id = 1;
将显示id为1的那一行数据
下表是mysql常用比较符
9、用update更新数据
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
例1. 修改单个数据
update students
set tel = "110"
where name = "mike";
这个指令会使mike的电话号码更改为110。
例2. 修改所有行的数据
update students
set tel = "110";
这个指令将所有人的电话都更改为110。
10、用delete删除数据
DELETE FROM table_name [WHERE Clause]
例1. 删除id为3的一行
delete from students
where id = 3;
11、alter命令
当需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令。
(1).添加表字段
mysql> alter table students add grade INT;
该语句将为表新增一个grade的字段
(2) .删除表字段
mysql> alter table students drop grade;
该语句将表中的grade及其数据删除。
(3)修改字段名
语句 alter table students change grade gradeee int;
将字段grade改名为gradeee,并将数据类型设置为int
(4) 修改字段数据类型
语句 alter table students modify grade varchar(10);
将grade修改为varchar类型
12、索引
给数据库建立正确合理的索引,是mysql优化的一个重要手段。使用索引就像查字典一样,不断的缩小想要获得数据的范围来筛选出最终想要的结果。实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。
虽然索引大大提高了查询速度,同时却会降低更新表的速度,INSERT 与 UPDATE 语句在拥有索引的表中执行会花费更多的时间,而SELECT 语句却会执行得更快。这是因为,在进行插入或更新时,数据库也需要插入或更新索引值。
索引的类型:
1、UNIQUE(唯一索引):不可以出现相同的值,可以有NULL值
2、INDEX(普通索引):允许出现相同的索引内容
3、PROMARY KEY(主键索引):不允许出现相同的值
4、fulltext index(全文索引):可以针对值中的某个单词,但效率不太好
5、组合索引:实质上是将多个字段建到一个索引里,列值的组合必须唯一
(1) 使用ALTER TABLE语句创建索引
ALTER(空格)TABLE(空格)表名(空格)ADD(空格)索引类型 (空格)索引名(字段名)
如:
语句 alter table mytable add index normal_index(id);
可以为表mytable创建一个名为normal_index的普通索引,并规定以表中字段id为索引
(2) 使用CREATE INDEX语句对表添加索引
如:
语句
语句 create unique index unique_index on mytable(id)
可以为表mytable添加一个名为unique_index的索引
(3) 删除索引
drop index 索引名 on 表名 ;
如:语句 drop index normal_index on mytable;
可以将上面的normal_index删除
(4) 查看索引
语句 show index from mytable;
可以查看mytable中的索引信息