mysql中常用的语句整理

时间:2021-06-09 08:42:17

mysql中常用的语句:

1:创建带自增长的主键的表
DROP TABLE IF EXISTS user_login ;
CREATE TABLE user_login (
  user_id INT  UNSIGNED NOT NULL
AUTO_INCREMENT,
  user_name VARCHAR(50) DEFAULT NULL,
  PRIMARY KEY user_id
) ENGINE=MYISAM 
AUTO_INCREMENT=0  DEFAULT CHARSET=utf8;

2:修改表名
alter table 原表名 RENAME 现表名 ;

3:增加列
ALTER TABLE  表名 ADD  COLUMN 列名
类型长度等[如:VARCHAR(10)];

4:修改列名
ALTER TABLE  表名 CHANGE  COLUMN 原列名 现列名
类型长度等[如:VARCHAR(10)]; ---一定要带上类型长度信息

5: 修改列类型长度
ALTER TABLE 表名 CHANGE COLUMN 列名 列名 类型长度;

6:删除列
ALTER TABLE  列名 DROP 
COLUMN  列名;

7:修改数据库的字符集utf8
ALTER DATABASE test DEFAULT CHARACTER SET utf8;

8:修改表的字符集utf8
ALTER TABLE user_login DEFAULT CHARACTER SET utf8;

9:修改已存在的表主键自增长(原主键未设定),仅对以后的数据生效,已经存在的数据无效,已存在数据自增长还未解决
ALTER TABLE 表名 CHANGE 主键列 id INT AUTO_INCREMENT;

10:数据加密
a)password函数
如:INSERT INTO user_login(user_name,user_password)
VALUES('shark',password('qweasdzxc'));
则保存的数据为:shark ,*E9D8702E5CE97F00A17A75241C04A013B407A1A6
特别注意,需要对加密的字段长度保证有效大小,我这里9个字符30位已经不够,我直接加大到100,这个具体位数跟加密算法有关,后期研究

select解密:SELECT * FROM user_login WHERE user_password=
PASSWORD('qweasdzxc') ;
b)md5加密
INSERT INTO user_login(user_name,user_password)
VALUES('kok',MD5('qweasdzxc'));
则保存的数据为:kok,315eb115d98fcbad39ffc5edebd669c9
与password函数加密产生出来的字符格式有一定的区别,还是和加密算法有关系
SELECT * FROM user_login WHERE user_password= md5('qweasdzxc')
;