[转帖]MySQL自学篇(三)_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
4
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2124 | 回复: 3   主题: [转帖]MySQL自学篇(三)        下一篇 
renruishen
注册用户
等级:新兵
经验:58
发帖:79
精华:0
注册:2011-12-25
状态:离线
发送短消息息给renruishen 加好友    发送短消息息给renruishen 发消息
发表于: IP:您无权察看 2015-1-12 11:15:46 | [全部帖] [楼主帖] 楼主

查看数据表结构 

使用SQL语句创建好数据表之后,可以查看表结构的定义,以确定表的定义是否正确。在MySQL中,查看表结构可以使用DESCRIBE 和 SHOW CREATE TABLE语句。

1、查看表基本结构语句DESCRIBE 

DESCRIBE/DESC语句可以查看表的字段信息,其中包括:字段名。字段数据类型、是否为主键、是否有默认值。语法规则:

DESCRIBE 表名;

后者简写为:

DESC 表名;

各个字段的含义分别为:

NULL:表示该列是否可以存储NULL指

Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE索引的一部分;MUL表示在该列中某个给定值允许出现多次。

Default:表示该列是否有默认值。如果有,是多少。

Extra:表示可以获取的给定列有关的附加信息,例如AUTO_INCREMENT等。

2、查看表详细结构语句SHOW CREATE TABLE 

SHOW CREATE TABLE 语句用来显示创建表时的CREATE TABLE语句,语法格式如下:

SHOW CREATE TABLE<表名\G>;

使用SHOW CREATE TABLE语句,不仅可以查看创建时候的详细语句,而且还可以查看存储引擎和字符编码

PS:如果不佳“\G”参数,显示的结果可能非常混乱,加上参数“\G”之后,可使显示结果更加直观,易于观察。

修改数据表 

1、修改表名 

MySQL是通过ALTER TABLE语句来实现表名的修改的,具体的语法规则如下:

ALTER TABLE <旧表名> RENAME TO <新表名>;

其中TO为可选参数,使用与否均不影响结果。

范例:

将数据表department改名为dept

alter table department rename dept;


可以使用DESC查看修改前后两个表的结构,修改表名并不修改表结构,因此修改名称后的表和修改之前的表结构是完全相同的。

2、修改字段的数据类型 

修改字段的数据类型就是把字段的数据类型转换成另一种数据类型。在MySQL中修改字段数据类型的语法规则如下:

ATTER TABLE <表名> MODIFY <字段名> <数据类型>

范例:

将数据表department2中的name字段的数据类型有VARCHAR(22)修改成VARCHAR(30)。

alter table department2 modify name varchar(30);


3、修改字段名 

MySQL中修改字段名的语法规则如下:

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>

其中,“旧字段名”是指的修改前的字段名;“新字段名”指修改后的字段名;“新数据类型”指的是修改后的数据类型;如果不需要修改字段的数据类型,可以将新数据类型设置成与原来一样即可,但是数据类型不能为空。

范例:

将数据表department字段location改名为local,数据类型保持不变,SQL语句如下:

alter table department change location local varchar(50);


4、添加字段 

添加字段语法格式如下:

ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST 

AFTER 已存在的字段名 ] ;

新字段名为需要添加的字段名称;“FIRST”为可选参数,其作用是将新添加的字段设置为表的第一个字段;“AFTER”为可选参数,其作用是将新添加的字段添加到指定的“已存在字段名”的后面。如果SQL语句中没有“FIRST”、“AFTER”这两个参数,则默认将这个字段放在数据表的最后列。

A、添加无完整性约束的字段 

范例:在数据表department中添加一个没有添加完整性约束的INT类型的字段managerId(部门经理编号),SQL语句如下:

ALTER TABLE department ADD managerId INT(10);


B、添加有完整性约束的字段 

范例:在数据表department中添加一个不能为空的VARCHAR(25)类型的字段column1,SQL语句如下:

ALTER TABLE department ADD column1 VARCHAR(12) NOT NULL;


C、在表的第一列添加一个字段 

范例:

在数据表department中添加一个INT类型的字段column2,SQL语句如下

alter table department add column2 int(10) first;


D、在表的指定列之后添加一个字段 

范例:

在数据表department中添加一个恶INT类型的字段column3在column2列之后。

alter table department add column3 int(10) after column2;


5、删除字段 

删除字段是将数据表中的某个字段从表中删除,语法格式为:

ALTER TABLE <表名> DROP <字段名>

范例:

删除数据表department中column2字段

alter table department drop column2;


6、修改字段的排列位置 

语法格式:

ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST

AFTER <字段2>

“字段1”值要修改位置的字段,“数据类型”值“字段1”的数据类型,“FIRST”为可选参数,指“字段1”修改为表的第一个字段,“AFTER字段2”指的是将“字段1”插入到“字段2”后面。

A、修改字段为表的第一个字段 

范例:

将数据表department中的column1字段修改为表的第一个字段,SQL语句:

alter table department modify column1 varchar(12) first;


B、修改字段到表的指定列之后 

范例:

将数据表department中的column1字段修改为表的managerId字段的后面。SQL语句如下:

alter table department modify column1 varchar(12) after managerId;


7、修改表的存储引擎  

存储引擎是MySQL中的数据存储在文件或者内存中时采用的不同技术实现。MySQL中主要的存储引擎有:MyISAM、InnoDB、MEMORY、BDB、FEDERATED等。可以使用SHOW ENGINES;语句查看系统支持的存储引擎。

更改表的存储引擎的语法格式如下:

ALTER TABLE <表名> ENGINE=<更改后的存储引擎名>;

范例:

将数据表student的存储引擎修改为MyISAM。

8、删除表的外键约束 

删除外键的语法:

ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>

范例:

创建employee9

create table employee9
(
id INT(11) primary key ,
name varchar(20),
deptId INT(11),
salary float,
constraint fk_emp_dept foreign key(deptId) references department(id)
);


删除外键

alter table employee9 drop foreign key fk_emp_dept;


删除数据表 

1、删除没有被关联的表 

MySQL中,使用DROP TABLE可以一次删除一个或多个没有被其他表关联的数据表。语法格式:

DROP TABLE [IF EXISTS] 表1,表2,...表n;

2、删除被其他表关联的主表 

数据表之间存在外键关联的情况,如果直接删除父表,结果会显示失败。原因是直接删除,将破坏表的参照完整性。

如果一定要删除,可以先删除与之关联的子表,在删除父表,只是这样同时删除了两个表中的数据。如果要将子表保留,这是要单独删除父表,只需将关联的表的外键约束条件取消,然后删除父表

范例:

创建dept表

create table dept(id INT(11) primary key ,name varchar(10),location varchar(30));


创建emp表

create table emp
(
id INT(10) primary key,
name varchar(20),
deptId INT(10),
constraint fk_emp_dept foreign key(deptId) references dept(id)
);


修改外键关联

alter table emp drop foreign key fk_emp_dept;


删除dept表

drop dept;


该贴被hui.chen编辑于2015-1-12 16:34:41




赞(0)    操作        顶端 
Theend
注册用户
等级:上士
经验:253
发帖:1
精华:0
注册:2014-10-29
状态:离线
发送短消息息给Theend 加好友    发送短消息息给Theend 发消息
发表于: IP:您无权察看 2015-1-14 10:31:37 | [全部帖] [楼主帖] 2  楼

北京联动北方科技有限公司


赞(0)    操作        顶端 
rui.yuan
注册用户
等级:中校
经验:1637
发帖:29
精华:0
注册:1970-1-1
状态:离线
发送短消息息给rui.yuan 加好友    发送短消息息给rui.yuan 发消息
发表于: IP:您无权察看 2015-1-14 12:14:52 | [全部帖] [楼主帖] 3  楼

规范的SQL语句ORACLE,SQLServer,mySql都试用啊,不过有少数地方有点区别



赞(0)    操作        顶端 
yaoxia.wu
注册用户
等级:中校
经验:2318
发帖:53
精华:1
注册:1970-1-1
状态:离线
发送短消息息给yaoxia.wu 加好友    发送短消息息给yaoxia.wu 发消息
发表于: IP:您无权察看 2015-1-14 22:50:28 | [全部帖] [楼主帖] 4  楼

常用的SQL语句总结的很全面啊 北京联动北方科技有限公司



赞(0)    操作        顶端 
总帖数
4
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论