登录:
mysql -uroot -pmysql查看数据库列表:
show databases;sql更改访问的数据库:
use test;数据库查看数据表列表:
show tables;ide
建用户:
CREATE USER test@'192.168.0.11' IDENTIFIED BY '123123';编码赋权限:
grant all privileges on *.* to test@'192.168.1.11' identified by '123123'spa收回权限:
REVOKE INSERT ON PERSON.* FROM test@'192.168.0.11';排序改密码:
use mysql;
UPDATE user SET password=PASSWORD('输入新密码') WHERE user='用户名';索引删除用户:
DROP USER test@'192.168.0.11';ip查看用户权限:
show grants for 'root'@'192.168.1.102';ci
查看数据库服务innodb引擎运行状态:
show engine innodb status\G;查看数据库属性配置:
show VARIABLES like '%%';查看数据库状态:
show status like '%Aborted_clients%';
建库:
CREATE DATABASE `数据库名称` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CHARACTER SET:字符集存储的编码方式!
COLLATE:即比对方法,用于指定数据集如何排序,以及字符串的比对规则
!!!说明 _ci:大小写不敏感 _cs:大小写敏感
建表:
CREATE TABLE `product` (
`proID` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品表主键',
`price` decimal(10,2) NOT NULL COMMENT '商品价格',
`type` int(11) NOT NULL COMMENT '商品类别(0生鲜,1食品,2生活)',
`dtime` datetime NOT NULL COMMENT '建立时间',
PRIMARY KEY (`proID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='商品表';复制型:
LIKE 复制
CREATE TABLE IF NOT EXISTS tb_base_like (LIKE tb_base);select 复制
CREATE TABLE IF NOT EXISTS tb_base_select SELECT * FROM tb_base;!!两种复制区别:
like除了复制表字段,还复制索引,默认值,说明信息等,可是不复制数据;
select复制表字段同时导入查询的数据,可是表结构属性全走默认。删表:drop table tb_base_like;
--修改表名
--RENAME TABLE 表名 TO 新表名; 这里面的TO不能够省略
RENAME TABLE user11 TO user10;
修改字段类型
ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]重命名字段
ALTER TABLE tablename CHANGE [COLUMN] new_name column_definition [FIRST|AFTER col_name]增长字段
--语法
ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name]--添加默认值字段
ALTER TABLE User ADD Age INT NOT NULL DEFAULT 0;---自增值 (auto_increment)
在mysql中添加默认值DEFAULT后面不能带'()',若是是整形字段直接空格加上要设的值,若是是字符型字段则加上单引号'',这里和SQL Server不一样的地方
删除字段
ALTER TABLE tablename DROP [COLUMN] col_name
数据类型
整型:TINYINT/INT/BIGINT
浮点型:浮点数若是不写精度和标度(M,D)【数值总长M位(不包含小数点),小数点后D位】,会按照实际精度值显示,若是存在精度和标度,若是小数点的位数超过D会自动插入四舍五入的结果不会返回错误,若是总长度超过M-D位会插入失败。
FLOAT/FLOAT(4,2) DOUBLE/DOUBLE(4,2)定点类型:定点数若是不写精度和标度会以默认值decimal(10,0)来存储,写精度和标度(M,D)【数值总长M位(不包含小数点),小数点后D位】,会按照实际精度值显示,若是存在精度和标度,若是小数点的位数超过D会自动插入四舍五入的结果并返回错误,若是总长度超过M-D位会插入失败。。
decimal(10,0)字符串类型
一、char(n)和varchar(n)中括号中n表明字符的个数,并不表明字节个数,因此当使用了中文的时候(UTF8)意味着能够插入m个中文,可是实际会占用m*3个字节。
二、同时char和varchar最大的区别就在于char无论实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,而且实际空间+1<=n。
三、超过char和varchar的n设置后,字符串会被截断。
四、char的上限为255字节,varchar的上限65535字节,text的上限为65535。
五、char在存储的时候会截断尾部的空格,varchar和text不会。
六、varchar会使用1-3个字节来存储长度,text不会。时间日期类型:默认系统日期:CURRENT_TIMESTAMP,当前日期now()
SELECT
FROM_UNIXTIME(1531399337),
UNIX_TIMESTAMP('2017-01-01 12:30'),
CURDATE(),
CURTIME(),
NOW(),
UNIX_TIMESTAMP();关于保存ip地址
ipv4(192.168.1.111)是32位的无符号整数,推荐将ipv4转成整数进行保存。 在MySQL中提供了INET_ATON()将ipv4转成整形以及INET_NTOA()将整形转成ipv4 例如: create table tbl_ips ( ip int ) insert into tbl_ips( inet_aton( '192.168.1.111' ) ); ------------- select * from tbl_ips where ip=inet_aton( '192.168.1.111' ); ------------- select inet_ntoa(ip) from tbl_ips;