mysql中常用的语句整理
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')
;