Mysql的基本语句用法
建表语句规范
DROP TABLE IF EXISTS `sys_user`; CREATE TABLE `sys_user` ( `id` varchar(64) NOT NULL COMMENT '编号', `company_id` varchar(64) DEFAULT NULL COMMENT '归属公司', `office_id` varchar(64) DEFAULT NULL COMMENT '归属部门', `login_name` varchar(100) DEFAULT NULL COMMENT '登录名', `password` varchar(100) DEFAULT NULL COMMENT '密码', `no` varchar(100) DEFAULT NULL COMMENT '工号', `name` varchar(100) DEFAULT NULL COMMENT '姓名', `email` varchar(200) DEFAULT NULL COMMENT '邮箱', `phone` varchar(200) DEFAULT NULL COMMENT '电话', `mobile` varchar(200) DEFAULT NULL COMMENT '手机', `user_type` char(1) DEFAULT NULL COMMENT '用户类型', `photo` varchar(1000) DEFAULT NULL COMMENT '用户头像', `login_ip` varchar(100) DEFAULT NULL COMMENT '最后登陆IP', `login_date` datetime DEFAULT NULL COMMENT '最后登陆时间', `login_flag` varchar(64) DEFAULT NULL COMMENT '是否可登录', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_date` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_date` datetime DEFAULT NULL COMMENT '更新时间', `remarks` varchar(255) DEFAULT NULL COMMENT '备注信息', `del_flag` char(1) DEFAULT '0' COMMENT '删除标记', `qrcode` varchar(1000) DEFAULT NULL COMMENT '二维码', `sign` varchar(450) DEFAULT NULL COMMENT '个性签名', PRIMARY KEY (`id`), KEY `sys_user_office_id` (`office_id`), KEY `sys_user_login_name` (`login_name`), KEY `sys_user_company_id` (`company_id`), KEY `sys_user_update_date` (`update_date`), KEY `sys_user_del_flag` (`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';
添加字段
sql语句如下:
1:
alter table 表名 add column 字段名 varchar(255) DEFAULT NULL;
2:
ALTER TABLE `表` ADD '字段' varchar(15) NOT NULL COMMENT '注释' after ‘字段名’ ;
after ‘字段名’ 表示在某个字段之后;
3.增加多个字段
alter table user
add (name1 varchar(30) default null not null,
age integer default null not null,
has_money2 double(9,2)
);
删除其中一个字段
LTER TABLE <表名> DROP <字段名>;
修改表名称注释
alter 表名 cs comment 'xxx表';
修改字段
sql语句如下: ALTER TABLE `user` MODIFY '字段' varchar(15) DEFAULT NULL;
重置清空id,让id从1开始自动递增
truncate table 你的表名
MySQL常用命令
create database name; 创建数据库
use databasename; 选择数据库
drop database name 直接删除数据库,不提醒
show tables; 显示表
describe tablename; 表的详细描述
select 中加上distinct去除重复字段
mysqladmin drop databasename 删除数据库前,有提示。
显示当前mysql版本和当前日期
select version(),current_date;
#查询数据库连接
show full processlist;
show status like ‘%Max_used_connections%’;
show status like ‘%Threads_connected%’;#当前连接数
show status like ‘%table_lock%’;#表锁定
show status like ‘innodb_row_lock%’;#行锁定
show status like ‘%qcache%’; #查询缓存情况
show variables like “%query_cache%”;
SHOW STATUS LIKE ‘Qcache%’;
show variables like “%binlog%”;
show status like ‘Aborted_clients’;#由于客户没有正确关闭连接已经死掉,已经放弃的连接数量
show variables like ‘%max_connections%’;//查看最大连接数量
show variables like ‘%timeout%’;#查看超时时间
show variables like ‘log_%’; #查看日志是否启动
修改mysql中root的密码:
shell>mysql -u root -p mysql> update user set password=password(”xueok654123″) where user=’root’; mysql> flush privileges //刷新数据库 mysql>use dbname; 打开数据库: mysql>show databases; 显示所有数据库 mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后 mysql>describe user; 显示表mysql数据库中user表的列信息);
grant
mysql> grant all privileges on *.* to user@localhost identified by ’something’ with
增加新用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码” GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY ’something’ WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO monty@”%” IDENTIFIED BY ’something’ WITH GRANT OPTION;
删除授权:
mysql> revoke all privileges on *.* from root@”%”; mysql> delete from user where user=”root” and host=”%”; mysql> flush privileges;
创建一个用户custom在特定客户端it363.com登录,可访问特定数据库fangchandb
mysql >grant select, insert, update, delete, create,drop on fangchandb.* to custom@ it363.com identified by ‘ passwd’
重命名表:
mysql > alter table t1 rename t2;
mysqldump
备份数据库
shell> mysqldump -h host -u root -p dbname >dbname_backup.sql
恢复数据库
shell> mysqladmin -h myhost -u root -p create dbname
shell> mysqldump -h host -u root -p dbname < dbname_backup.sql
如果只想卸出建表指令,则命令如下:
shell> mysqladmin -u root -p -d databasename > a.sql
如果只想卸出插入数据的sql命令,而不需要建表命令,则命令如下:
shell> mysqladmin -u root -p -t databasename > a.sql
那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢?
mysqldump -T./ phptest driver
其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqldump同一目录。如果不指定driver 表,则将卸出整个数据库的数据。每个表会生成两个文件,一个为.sql文件,包含建表执行。另一个为.txt文件,只包含数据,且没有sql指令。
5、可将查询存储在一个文件中并告诉mysql从文件中读取查询而不是等待键盘输入。可利用外壳程序键入重定向实用程序来完成这项工作。
例如,如果在文件my_file.sql 中存放有查
询,可如下执行这些查询:
例如,如果您想将建表语句提前写在sql.txt中:
mysql > mysql -h myhost -u root -p database < sql.txt
建表模板
create table wf_process_case ( id varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', car_code varchar(50) comment '车辆编号', PRIMARY KEY (`id`) USING BTREE )comment '流程实例表';
执? sql 脚本?件(.sql ?件)
source 脚本?件名