一、mysql介绍
mysql是关系型数据库,与其他常用关系型数据库特点:
oracle(付费)、mysql(免费开源) sqlserver(微软)
二、基本使用命令
1、管理命令
mysql -u用户 -p密码 (连接)
show databases;(查看所有用户)
use 用户名;(切换用户)
show tables;(查看当前用户所有表)
desc 表名;(查看指定表的表结构)
select * from 表名;(查看表内的内容)
show columns from 表名; (显示数据表的属性)
show index from 表名;(查看表的索引)
create database testdb charset "utf8";(创建一个叫testdb的数据库,并支持中文)
drop database testsb;(删除数据库)
grant all on testdb.* to 'chen'@'%' identified by 'chen'; (创建用户chen密码为chen,并且授权testdb下的所有权限给chen)
2、常用命令
(1)数据类型
(2)数据表命令
创建数据表:
create table table_name(
stu_id int not null auto_increment,
name char(32) not null,
age int not null,
register_data Date,
primary key(stu_id)
);
插入数据:
insert into table_name(column1,column2,column3) values (value1,value2,value3)
查看数据:
select column1,column2 from table_name [where 条件] [offset M] [limit 5];
更新数据:
update table_name set column1=value1,column2=value2 where 条件;
删除数据:
delete from table_name where 条件;
3、结构性操作命令
(1) Alter:修改结构性属性
添加字段
alter table student add sex enum("M","F");
删除字段
alter table student drop sex;
修改字段属性
alter table student modify sex enum("F","M") not null;
修改表名
alter table student rename to test;
(2)索引:索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度,主键默认是索引
普通索引:
普通创建索引:
create index indexname on table_name(column(length)); #length:字段长度,可以不指定
修改表结构方式创建:
alter table_name add index indexname on column(length);
创建表的时候创建:
create table table_name(
stu_id int not null auto_increment,
name char(32) not null,
age int not null,
register_data Date,
primary key(stu_id),
index indexname (name(32))
);
删除索引 :
drop index indexname on table_name;
有四种方式来添加数据表的索引:
ALTER
TABLE
tbl_name
ADD
PRIMARY
KEY
(column_list): 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为
NULL
。
ALTER
TABLE
tbl_name
ADD
UNIQUE
index_name (column_list): 这条语句创建索引的值必须是唯一的(除了
NULL
外,
NULL
可能会出现多次)。
ALTER
TABLE
tbl_name
ADD
INDEX
index_name (column_list): 添加普通索引,索引值可出现多次。
ALTER
TABLE
tbl_name
ADD
FULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引
查看索引:
SHOW
INDEX
FROM
table_name
(3)外键与外键约束:primary key
(4)多表查询:
inner join:(交集)
select
*
from
a
INNER
JOIN
b
on
a.a = b.b;
left join:(A表所有,B表交集或空)
select
*
from
a
LEFT
JOIN
b
on
a.a = b.b;
right join:(B表所有,A表交集或空)
select
*
from
a
RIGHT
JOIN
b
on
a.a = b.b;
(5)事务:开启一个事务,进行一堆数据库操作语句集合构成一个事务(begin开会一个事务,rollback回滚,commit确认,中间就是事务包含的操作)