1、Mysql的安装
Ubuntu下安装mysql:sudo apt-get install mysql-server mysql-client
Ubuntu安装mysql的开发包:sudo apt-get install libmysqlclient-dev
2、Mysql常用命令
(1)、在控制台登录本地:mysql -u username -p
(2)、在控制台登录远程主机:mysql -h IP_Address -u username -p password;
(3)、创建数据库:create database db_name;
(4)、显示数据库:show databases;
(5)、选择数据库:use db_name;
(6)、查看当前数据库:select database();
(7)、删除数据库:drop database db_name;
(8)、显示表名:show tables;
(9)、获取表结构:desc table_name;
(10)、创建关系表:create table table_name(
id int not null,
name varchar(20),
salary int ,
roleId int,
primary key(id), //主键约束
foreign key (roleId) references roles(id) //外键约束,参考的表为roles中的主键id
);
(11)、清空表:delete from table_name;
(12)、更改表名:rename table old_name to new_name;
(13)、删除表:drop table table_name;
(14)、查询所有数据:select * from table_name;
(15)、查询前几行:select * from table_name order by id limit 0,2; //返回1 - 2 行,0表示起始,2表示取多少行
select * from table_name order by id limit 2 offset 0; //返回1-2 行,2表示取多少行,0表示偏移
(16)、插入数据:
插入指定字段:insert into table_name(col1, col2, ... , coln) values('xxx','xxx','xxx',.......);
插入所有字段:insert into table_name values('xxx','xxx','xxx',.......); // 前提条件是字段顺序必须与表中字段顺序一致
批量插入:insert into table_name values('xxx','xxx','xxx',.......),('xxx','xxx','xxx',.......), ....... ;
条件插入:insert into table_name(col1, col2, ,,,, coln) select val1, val2, ..., valn from dual where not exists(select * from table_name where coln = valn) ; // select语句生成一行数据存放在dual表中,但是只有后面的条件满足才这么做。
(17)、删除表中数据:delete from table_name where <expressions>;
(18)、更新表中数据:
普通方法:update table_name set property1=value1, property2=value2 where <expressions>;
replace函数:update table_name set col = replace(col, raw_value, new_value) where col = xxx ;
(19)、在表中增加字段:alter table table_name add property_name type_name default xxx not null;
(20)、在表中修改字段:alter table table_name change old_property new_property type_name;
(21)、在表中删除字段:alter table table_name drop column property_name;
(22)、查看所有用户:select User, Host from mysql.user;
(23)、创建用户:create user ‘username’@‘localhost’ identified by ‘password’;
(24)、删除用户:drop user ‘username’@‘localhost’;
(25)、给用户授全部权限:grant all privileges on db_name.* to username@localhost;
(26)、修改用户密码:set password for username@localhost = password('new_password');
(27)、导入数据库:mysql -h localhost -u username -p --default-character-set=utf8 db_name < URL;
(28)、导出数据库:mysqldump -u username -p db_name > URL
(29)、导出数据库结构:mysqldump -u username -p -d db_name>URL
(30)、导出一个表:mysqldump -u username -p db_name table_name >URL
(31)、导出一个表结构:mysqldump -u username -p -d db_name table_name>URL
(注:mysqldump命令必须在操作系统的命令行才能下运行(也就是退出mysql之后运行),并且命令结尾不能加分号“;”,在mysql自带的命令行下无法运行)
(32)、创建索引
创建普通索引:create index index_name on table_name(col);
创建唯一索引:create unique index index_name on table_name(col);
(33)、强制和禁止使用索引:
强制使用索引:select * from table force index(PRI, ziduan1_index) limit 2; // (强制使用索引"PRI和ziduan1_index")
禁止使用索引:select * from table ignore index(PRI,ziduan1_index) limit 2; // (禁止使用索引"PRI,ziduan1_index")
(34)、创建视图: create view view_name(name1, name2, ..., namen) as select col1, col2, ,,,, coln from table_name where xxx ;
(35)、删除重复记录并且只保留一条:
select * from table_name where col not in (
select dt.minno from
(selec min(col) as minno from table_name group by col ) dt
)
(36)、创建外键:alter table table_name add foreign key key_name(col) references another_table_name(col);