mysql
DDL是(Data Definition Languages)数据定义语言的缩写
定义了不同的数据段、数据库、表、列、索引等数据库对象。常用的语句关键字主要包括create、drop、alter等
创建数据库
create database dbname
mysql> create database test1;mysql> create database test1 DEFAULT CHARACTER SET utf8;
创建默认gbk字符集的数据库可以用下面的sql:
mysql> create database yourdb DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
查看数据库
show databases;
mysql> show databases;
选择使用数据库
use dbname;
mysql> use test1;
查看数据表
show tables
mysql> show tables;
删除数据库
drop database dbname
mysql> drop database test1;
创建表
create table tablename (
column_name_1 column_type_1 constraints,
...
column_name_n column_type_n constraints)
例如:创建 emp 表
mysql> CREATE TABLE emp -> (id int unsigned not null auto_increment primary key, -> ename varchar(10) not null, -> address text not null, -> choose text not null, -> repairDate char(50) not null, -> dTime datetime not null, -> files text not null -> )ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
查看表的定义
desc tablename
describe tablename
mysql> desc emp;或mysql> describe emp;
查看详细
show create table tablename G;
mysql> show create table emp G;
删除表
drop table tablename
mysql> drop table emp;
修改表
alter table tabename modify[column] column_definition [first|after col_name]
修改emp表的ename字段定义,将varchar(10)改为 varchar(20)
mysql> alter table emp modify ename varchar(20);
增加字段 age,类型为int(3):
mysql> alter table emp add column age int(3);
更改表名
mysql> alter table emp rename emp1;
删除表字段 age
mysql> alter table emp drop column age;
字段改名, age 改为 age1
alter table emp change age age1 int(4);
change和modify都可以修改表的定义,不同的是change后面需要些两次列名,不方便,但是change的有优点是可以修改列名称,modify不可以。
修改字段排序
增加新字段birth类型是date 到ename后面
mysql> alter table emp add birth date after ename;
修改age到表的最前面
mysql> alter tabel emp modify age int(3) first;
清空表,并且ID重新排列
truncate tablename
mysql> truncate emp;
数据库编码
mysql编码
查看mysql支持的编码有哪些
mysql> show character set;
查看数据库编码
mysql> use dataname;mysql> show variables like 'character_set_database';//或者mysql> show create database dataname;
修改数据库编码
mysql> alter database dataname character set utf8;
查看数据表编码
mysql> show create table tablename;
修改数据库表编码
该命令用于将表test的编码方式改为utf8;
mysql> ALTER TABLE `test` DEFAULT CHARACTER SET utf8;
修改字段编码
该命令用于将表test中name字段的编码方式改为utf8
mysql> ALTER TABLE `test` CHANGE `name` `name` VARCHAR(36) CHARACTER SET utf8 NOT NULL;
查看数据表所有字段编码
mysql> show full fields from tablename;
查看mysql中各种服务的编码
mysql> show variables like 'character%';+--------------------------+---------------------------------------------------------+| Variable_name | Value |+--------------------------+---------------------------------------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | utf8 || character_set_filesystem | binary || character_set_results | utf8 || character_set_server | utf8 || character_set_system | utf8 || character_sets_dir | /usr/local/mysql-5.7.13-osx10.11-x86_64/share/charsets/ |+--------------------------+---------------------------------------------------------+
说明:
character_set_client:客户端字符集character_set_connection:链接字符集character_set_database:数据库字符集character_set_filesystem:文件系统character_set_results:结果字符集character_set_server:服务器字符集character_set_system:mysql系统字符集
比如:设置character_set_server为utf8
set character_set_client=utf8;
数据库备份
备份数据库
mysqldump基本语法:
mysqldump -u username -p dbname table1 table2 ...-> BackupName.sql
其中:
- dbname参数表示数据库的名称;
- table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;
- BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件;
使用root用户备份test数据库下的person表
mysqldump -uroot -p test person > D:backup.sql
备份多个数据库
语法:mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql
加上了--databases选项,然后后面跟多个数据库
mysqldump -u root -p --databases test mysql > D:backup.sql
utf8备份
mysqldump -uroot -p --default-character-set=utf8 dbname tablename > bak.sql
数据库还原
mysql> mysql -h host -u root -p root < /path/to/insert.sql或者mysql> use dbname;mysql> source base_user_gbk.sql;
utf8还原
mysql -uroot -p --default-character-set=utf8 dbname < bak.sql
资料为本人入门经验总结,希望能帮到你们,如有不明白可关注我,欢迎共同探讨交流。
部分图片源于网络,如有侵权请联系删除!
MSYQL