(1)查看数据库
直接进入数据库查看:
mysql> show databases;
以行的方式显示:
mysql> show databases \G
在shell中查看:
mysql -e后面直接跟sql语句,这种方式一般是在shell脚本中用到
mysql -e 'show databases' -uroot -p123456
(2)创建数据库
mysql> create database 数据库名;
mysql> create database if not exists haha;
##如果不存在此数据库,才创建,可以避免出现错误信息
mysql> create database `ha-ha`;
##如果有特殊符号需要有``括起来
上面命令中的数据库名字必须与操作系统的约束的目录名字一致
不允许文件和目录名中有,/,:,*,?,”,<,>,|这些特殊符号,在MySQL数据库名字中这些字母会被自动删除
数据库的名字不能超过64个字符,包含特殊字符的名字或者是全部由数字或保留字组成的名字必须用反引号``括起来
数据库不能重名
(3)选择要操作的数据库
mysql> use 数据库名;
##后面的操作默认都是在被选择的数据库中进行操作
Database changed
(4)查看自己所处位置
mysql> select database();
##看看自己在数据库中的哪里
mysql> select now(),user(),database();
##看看自己在数据库哪里,用户是谁,
现在的日期和时间,使用时间函数,用户函数,数据库函数
(5)在shell命令行选择默认的数据库
[root@haha ~]# mysql -uroot -p123456 haha
(6)删除数据库
mysql> drop database `ha-ha`;
##此命令不安全,数据无法恢复,在工作中
我们可以移动数据库目录到别的地方,防止
删除数据库了想要恢复
[root@haha ~]# mkdir /db_backup
[root@haha ~]# mv /data/mysql/data/ha-ha \
>/db_backup
mysql> drop database if exists `ha-ha`;
##如果存在此数据库,才进行删除,
可以防止出现错误信息
(1)创建表
mysql> create table 表名 (字段名 类型, 字段名 类型, 字段名 类型);
mysql> use haha;
mysql> create table xixi(id int(20),name char(40),age int);
mysql> create table haha.hehe(id int(20),name char(40),age int);
##这样不需要进入到数据库里
(2)查看表的相关信息
mysql> use haha;
Database changed
mysql> show tables;
(3)查看表结构
mysql> desc 表名;
mysql> explain 数据库.表名;
mysql> show columns from 数据库.表名;
mysql> show fields from 数据库.表名;
mysql> show columns from 数据库.表名 like ‘%字段’;
(4)查看创建表执行了哪些命令
mysql> show create table 表名 \G
(5)指定默认存储引擎和字符集
存储引擎:类似硬盘的文件系统
字符集:不同的字符集,字符的长度大小有别
新建一个表,指定默认的存储引擎为InnoDB,编码为utf8
mysql> create table student2(id int(20),name char(40),age int) ENGINE=InnoDB DEFAULT CHARSET=utf8;
(6)删除表
mysql> drop table 表名;
(7)禁止预读表信息
没有禁止前转换数据库会有提示信息
mysql -uroot -p123456 -A
(8)修改表名称
alter table 表名 rename 新表名;
mysql> alter table student rename students;
(9)修改表中的字段类型
alter table 表名 modify 要修改的字段名 要修改的类型;
mysql> desc students;
mysql> alter table students modify id int(10);
##修改字段id 的int(20)字段类型为int(10)
(10)修改表中的字段类型和字段名称
alter table 表名 change 原字段名 新字段名 新字段类型;
mysql> desc students;
mysql> alter table students change name stname char(20);
##重命名字段name为stname,字段类型
CHANGE 对列进行重命名和更改列的类型,需给定旧的列名称和新的列名称、当前的类型。 MODIFY 可以改变列的类型,此时不需要重命名(不需给定新的列名称)
(11)在表中添加字段
alter table 表名 add字段名 字段类型;
enum ##枚举类型,比如性别,只能在男女选择,是男非女,是女非男
mysql> alter table students add sex enum('M','W');
(12)在表中指定位置添加字段
在第一列添加一个字段
mysql> alter table students add uid int(10) first;
在age后面添加一个address字段
mysql> alter table students add address char(40) after age;
(13)删除表中字段
alter table 表名 drop 字段名;
mysql> alter table students drop address;
(1)插入<记录>INSERT
INSERT INTO 语句用于向表中插入新的行
insert into 表名values (字段值1,字段值2, 字段值3);
插入记录时values所指定的值要和表中字段的个数、顺序以及类型要一一对应
mysql> drop tables students;
mysql> create table students(id int(20),name char(40),age int);
mysql> alter table students add sex enum(‘M’,’W’);
mysql> insert into students values(1,'haha',25,'M');
(2)同时插入多条记录
mysql> insert into students values(2,'lis',24,’M’),(3,'wange',26,’W’);
(3)分开插入表记录
insert into 表名 (字段1, 字段2,…) VALUES (字段值1, 字段值2,…);
mysql> insert into students (id,name)values(4,'hangl');
(4)查询表中记录
SELECT 语句用于从数据库表中读取数据
select * from 表名;
##*号表示表中所有的字段
查询所有记录:
mysql> select * from students;
表中记录多的时候可以使用\G查看;
mysql> select * from student\G
只查询表中某个字段或者某个字段的内容;
mysql> select name from students;
mysql> select id,name from students;
查看别的数据库的表或者不在本数据库上进行查看;
SELECT 字段 FROM 数据库名.表名;
mysql> select * from haha.students;
(5)删除表中记录
delete from table_name WHERE some_column=some_value;
WHERE 子句规定哪条记录或者哪些记录需要删除。如果省略了 WHERE 子句,所有的记录都将被删除!
删除表中id为3的行
mysql> delete from students where id=3;
删除age为空的行
mysql> delete from students where age is null;
(6)更新记录
update 语句用于修改表中的数据
UPDATE table_name
SET column1=value1,column2=value2,…
WHERE some_column=some_value;
WHERE 子句规定哪条记录或者哪些记录需要更新。如果省略了 WHERE 子句,所有的记录都将被更新!
更新表中id为2的记录,更新内容age=25
mysql> update students set age=25 where id=2;
把表中所有id都更新为2
mysql> update students set id=2;
同时更新多个字段的记录(字段值),使用逗号隔开
mysql> update students set id=1,name='zhangsan' where age=21;