我常用的mysql语句:DDL、DML、DCL、TCL

动态 未结 置顶 精帖
用户
悬赏:60飞吻
DDL(Data Definition Language 数据定义语言)
--用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表、视图等等.
--DDL的主要语句: CREATE、ALTER、DROP 、TRUNCATE 、COMMENT 、RENAME 
DML(Data Manipulation Language 数据操控语言)
--用于操作数据库对象中包含的数据,也就是说操作的单位是记录。
--DML的主要语句: SELECT 、INSERT 、UPDATE 、DELETE 、MERGE 、CALL、EXPLAIN PLAN 、LOCK TABLE 
DCL(Data Control Language 数据控制语句)
--DCL的操作是数据库对象的权限,这些操作的确定使数据更加的安全。
-- DCL的主要语句:Grant、 Revoke
TCL(Transaction Control Language)事务控制语言
-- TCL的主要语句:SAVEPOINT 设置保存点、ROLLBACK  回滚、SET TRANSACTION

--在mysql中,每个数据库最多可创建20亿个表,一个表允许定义1024列,每行的最大长度为8092字节(不包括文本和图像类型的长度)。
--当表中定义有varchar、nvarchar或varbinary类型列时,如果向表中插入的数据行超过8092字节时将导致Transact-SQL语句失败,并产生错误信息。
--SQL对每个表中行的数量没有直接限制,但它受数据库存储空间的限制。
--每个数据库的最大空间1048516TB,所以一个表可用的最大空间为1048516TB减去数据库类系统表和其它数据库对象所占用的空间。
--mysql的最大连接数默认是100, 最大可以达到16384

DDL
-------------------------------------------------------------------------------
-----新建表
DROP TABLE IF EXISTS `tbluserlog`;
CREATE TABLE `tbluserslog` (
  `ulog_id` int(11) NOT NULL AUTO_INCREMENT COMMENT'日志ID',
  `ulog_lat` VARCHAR(40) DEFAULT NULL COMMENT '纬度',
  `ulog_lon` VARCHAR(40) DEFAULT NULL COMMENT '经度',
  `ulog_addr` VARCHAR(120) DEFAULT NULL COMMENT '物理地址',
  `ulog_remark` VARCHAR(32) DEFAULT NULL COMMENT '备注:登录、注销、扫描',
  `ulog_user_id` int(11) NOT NULL COMMENT'用户ID',
  `ulog_addtime`  DATETIME  NOT NULL  COMMENT '添加时间',
   PRIMARY KEY (`ulog_id`),
   CONSTRAINT `FK_tbl_user_log_userid` FOREIGN KEY (`ulog_user_id`) REFERENCES `tblgpsuser` (`userid`)
) ENGINE=INNODB DEFAULT CHARSET=gb2312 COMMENT='日志表';

---添加主键约束
alter table 表名 add constraint 主键 (形如:PK_表名_主键字段名) primary key 表名(主键字段);
---添加外键约束
alter table 从表 add constraint 外键(形如:FK_从表_主表_外键字段名) foreign key (从表外键字段名) references 主表(主键字段);
例如:ALTER TABLE tblcontact_relation ADD CONSTRAINT FK_tblcontact_relation_subject_cont_id FOREIGN KEY (subject_cont_id) REFERENCES tblcontact(cont_id);

---删除主键约束
alter table 表名 drop primary key;
---删除外键约束
alter table 表名 drop foreign key 外键(区分大小写);
---修改表名
alter table 表名 rename to 新表名;
---添加列
alter table 表名 add column 列名 varchar(30) DEFAULT NULL COMMENT '注释';
---添加列例子
alter table tblgpsuser add `useremail` VARCHAR(32) DEFAULT NULL COMMENT '用户eamil';
alter table tblgpsuser add `user_cont_id` INT(11) NOT NULL;
alter table tblgpsuser add `useraddtime` DATETIME DEFAULT NULL COMMENT '添加时间';
---删除列
alter table 表名 drop column 列名;
---删除字段
ALTER TABLE table_name DROP field_name; 
---修改列属性
alter table 表名 modify 列名 varchar(22);
---修改列名
alter table 表名 change 列名 新列名 INT(11);

---改变列的类型
alter table t1 change b b bigint not null;
alter table infos change list list tinyint not null default '0';
ALTER TABLE areaname CHANGE areaname areaname varchar(40) CHARACTER SET utf8; 
alter table `W` modify column `CONTENT` varchar(30) character set utf8 not null; 
---调整字段顺序
ALTER TABLE 表名 CHANGE `GatewayId` `GatewayId` int not null default 0 AFTER RegionID 
---加索引
alter table 表名 add index 索引名 (列名);
alter table tablename add unique emp_name2(cardnumber);
--删除索引
alter table 表名 drop index 索引名;
--清空表
TRUNCATE  TABLE   表名;
--查看表的字段信息
DESC 表名;
--查看表的所有信息,获取建表脚本
SHOW CREATE TABLE 表名;

/>

回帖
  • 消灭零回复
[打开调试信息]