数据库基础:sql语句之数据定义语句(DDL)

一、连接和退出mysql服务器

1.连接mysql:
  mysql -u username -p

注意:
-- mysql 代表客户端命令
-- "-u"后面跟连接数据库的用户username,一般为root
-- "-p"表示需要输入密码
-- 执行命令后,并输入正确密码,会出现欢迎界面和"mysql>"提示符
-- 命令符的结束符,用";"或"\g"结束
-- 通过"help;"或者"\h"命令来显示帮助内容,通过"\c"命令来实现清除命令行buffer

2.退出mysql:
  mysql> exit

二、MySQL之数据的导入和导出

1.数据的导入

1.1 mysql命令导入

mysql -u username  -p password    <  要导入的数据库数据(xxx.sql)
-- 例如:mysql -u root -p 123456 < lzh.sql

1.2 source命令导入

先登入到数据库终端,然后输入以下命令:
create database abc;      # 创建数据库
use abc;                  # 使用已创建的数据库 
set names utf8;           # 设置编码
source /home/abc/abc.sql  # 导入备份数据库

1.3 使用load data导入数据

load data local infile 'xxx.txt' into table tablename;

-- MySQL 中提供了LOAD DATA INFILE语句来插入数据。 
-- 以上实例中将从当前目录中读取文件xxx.txt ,将该文件中的数据插入到当前数据库的tablename表中。

2.数据的导出

2.1 使用 SELECT ... INTO OUTFILE 语句导出数据

SELECT * FROM tablename INTO OUTFILE '/tmp/xxx.txt';

-- 实现将数据表tablename的数据导出到/tmp/xxx.txt 文件中.

或输出位csv格式:
SELECT a,b,a+b INTO OUTFILE '/tmp/xxx.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM tablename;

-- 实现将数据表tablename中字段为a,b数据及a+b的数据导出到/tmp/xxx.txt 文件中,以csv格式存储。


/*
mysqldump 是 mysql 用于转存储数据库的实用程序。
它主要产生一个 SQL 脚本,其中包含从头重新创建数据库所必需的命令 CREATE TABLE INSERT 等。
使用 mysqldump 导出数据需要使用 --tab 选项来指定导出文件指定的目录,该目标必须是可写的。
执行命令后,会要求输入数据库密码,命令不是在数据库终端执行,而是cmd或linux下。
*/

2.2 导出表作为原始数据
mysqldump -u root -p --no-create-info --tab=/tmp dbname tablename
password *******

-- 以上命令实现的是将数据库dbname中数据表tablename导出到/tmp目录下。

2.3 导出SQL格式的数据

mysqldump -u username -p password tablename > xxx.txt
password ******

-- 以上命令实现的是将数据表tablename导出到xxx.txt文件中
 

三、DDL语句

DDL语句定义了不同的数据段、数据库、表、列、索引等数据库对象,常用的语句关键字主要包括create、drop、alter等。

(1)创建、删除、选择数据库,查看系统内的数据库及数据库下的数据表

1.创建数据库
create  database dbname

2.删除数据库
drop database dbname

3.选择数据库
use dbname

4.查看系统中存在的数据库
show databases

5.查看某个数据库(dbname:test)的数据表,这里只显示数据表的字段信息
use test
show tables

注意:
-- dbname 是数据库名称

(2)创建、删除、查看数据表

1.创建数据表
create table tablename (
column_name_1 column_type_1 constraints 
column_name_2 column_type_2 constraints
...
column_name_n column_type_n constraints);

-- tablename:表名
-- column_name:表字段名
-- column_type:定义每个表字段的数据类型
-- constraints:约束条件

2.删除数据表
drop table tablename;

3.查看数据表
desc tablename; 
-- 该命令输出的信息不够全面,想获取更加全面的表定义信息,可查看创建表的sql语句,使用命令:
show create table tablename \G ;

注意:
-- "\G"是使得记录能够按照字段竖向排列,更方便理解和查看

(3)修改数据表(alter table 语句)

1.修改表类型
alter table tablename modify column_name column_type_new 

-- tablename:表名
-- column_name:字段名
-- column_type_new:字段名的新数据类型


2.增加表字段
alter table tablename add column column_name column_type [first|after column_name]

-- tablename:表名
-- column_name:字段名
-- column_type:字段名的数据类型
-- [first|after column_name]:first column_name指在column_name之前添加;after column_name指在column_name之后添加
-- 注意:add 后面还有一个column ,不要忽略掉了

3.删除表字段
alter table tablename drop column clounm_name

4.更改字段名
alter table tablename change column_name column_name_new column_type_new 

-- 更改字段名后,新的字段名column_name_new后面一定要跟着新的字段的数据类型column_type_new
-- 注意:change 和modify都可以修改表的定义,不同的是change后面需要写两次列名,不方便。但是change的优点是可以修改列名称,而modify则不能。

5.修改字段的排列顺序
alter table tablename [add|modify|change] ... [first|after column_name]

-- add|modify|change这三个命令都可带字段排序可选项[first|after column_name]
-- [first|after column_name]:first column_name指在column_name之前添加;after column_name指在column_name之后添加

6.更改表名
alter table tablename rename [To] tablename_new

-- [To] :可有可无,含义一样
-- tablename_new :新的表名

 

你可能感兴趣的:(数据库mysql)