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> usetest1;
查看数据表
语法:show tables
mysql> showtables;
删除数据库
语法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 tablenamedescribe tablename
mysql> desc emp;或mysql> describe emp;
查看详细show create table tablename \G;
mysql> show create table emp \G;
删除表
drop table tablename
mysql> droptable 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
altertable emp change age age1 int(4);
change 和 modify 都可以修改表的定义,不同的是 change 后面需要些两次列名,不方便,但是 change 的有优点是可以修改列名称, modify 不可以。
修改字段排序
增加新字段 birth 类型是 date 到 ename 后面
mysql> alter table emp add birth dateafter ename;
修改 age 到表的最前面
mysql> alter tabel emp modify age int(3) first;
清空表,并且ID重新排列
truncate tablename
mysql> truncate emp;
数据库编码
查看mysql支持的编码有哪些
mysql> show characterset;
查看数据库编码
mysql> usedataname;mysql> show variables like 'character_set_database';//或者mysql> show create database dataname;
修改数据库编码
mysql> alter database dataname characterset 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%';
说明:
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
资料为本人入门经验总结,希望能帮到你们,如有不明白可关注我,欢迎共同探讨交流。
部分图片源于网络,如有侵权请联系删除!