时间:2021-07-01 10:21:17 帮助过:11人阅读
use mysql; update user set password=password(‘abc‘) WHERE User=‘root‘;
按功能分类:定义(DDL)、管理(DML)、控制(DCL)、查询(DQL)
??所有表结构操作语句都是DDL语句
create database mydb1;
create database mydb2 character set utf8;
-- 查看所有数据库 show DATABASES; -- 查看数据库定义信息 show create DATABASE db_name; -- 查看当前使用的数据库 select DATABASE(); -- 切换当前数据库 use db_name;
-- 删除数据库 drop DATABASE db_name;
-- 修改数据库db_name编码集 alter DATABASE db_name CHARACTER SET gbk;
约束用来保证数据有效性和完整性。
CREATE TABLE `operate_record` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘主键ID‘, `manage_id` bigint(20) NOT NULL DEFAULT ‘0‘ COMMENT ‘管理表id‘, `product_id` bigint(20) NOT NULL DEFAULT ‘0‘ COMMENT ‘产品编号‘, `product_type` tinyint(4) NOT NULL DEFAULT ‘0‘ COMMENT ‘产品类型‘, `trans_id` varchar(50) NOT NULL DEFAULT ‘0‘ COMMENT ‘交易编号‘, `user_id` bigint(20) NOT NULL DEFAULT ‘0‘ COMMENT ‘用户编号‘, `STATUS` tinyint(4) DEFAULT ‘0‘ COMMENT ‘操作:1:额度退出 2:额度恢复 3:额度调整‘, `amount` decimal(18,6) DEFAULT ‘0.000000‘ COMMENT ‘操作金额‘, `is_delete` tinyint(4) NOT NULL DEFAULT ‘0‘ COMMENT ‘是否删除:0.不删除 1.删除‘, `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间‘, `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间‘, `creator` bigint(20) NOT NULL DEFAULT ‘0‘ COMMENT ‘创建人‘, `updator` bigint(20) NOT NULL DEFAULT ‘0‘ COMMENT ‘更新人‘, `VERSION` int(11) NOT NULL DEFAULT ‘1‘ COMMENT ‘版本‘, PRIMARY KEY (`id`), UNIQUE KEY `uniq_operate_record` (`trans_id`,`STATUS`,`is_delete`), KEY `idx_manage_id` (`manage_id`), KEY `idx_trans_id` (`trans_id`), KEY `idx_user_id` (`user_id`), KEY `idx_product_id` (`product_id`), KEY `idx_product_type` (`product_type`), KEY `idx_STATUS` (`STATUS`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=‘操作记录表‘;
-- 增加列 语法:alter table 表名 add 列(可以省略列column) 列名 类型(长度) 约束; ALTER TABLE `table_name` ADD COLUMN `lock_amount` DECIMAL(18,6) NOT NULL DEFAULT ‘0.00‘ COMMENT ‘锁定金额‘ AFTER `amount`; -- 修改现有列类型、长度和约束 语法:alter table 表名 modify 列名 类型(长度) 约束; ALTER TABLE `table_name` MODIFY COLUMN `product_type` TINYINT(10) NOT NULL COMMENT ‘产品类型...‘; -- 修改现有列(名称、约束等) 语法:alter table 表名 change 旧列名 新列名 类型(长度) 约束; ALTER TABLE `table_name` CHANGE old_column_name new_column_name TINYINT(10) NOT NULL COMMENT ‘产品类型...‘; -- 删除现有列 语法:alter table 表名 drop 列名; ALTER TABLE `table_name` DROP column_name; -- 修改表名 语法:rename table 旧表名 to 新表名; RENAME TABLE old_table_name to new_table_name; -- 修改表字符集 RENAME TABLE table_name character set utf8;
-- 数据表删除 DROP TABLE table_name;
-- 查看表结构 DESC table_name; -- 查看当前库所有表 SHOW TABLES; -- 查看建表语句和字符集 SHOW CREATE TABLE table_name;
INSERT INTO table_name (`manage_id`, `product_id`, `product_type`, `trans_id`, `user_id`, `STATUS`, `amount`) VALUES (18, 1008927, 26, ‘100000006‘, 1008927, 1, 8000.00);
??补充小知识:
insert into employee(id,name,job,salary) values(4,‘小明‘,‘清洁员‘,1500);出错了:
ERROR 1366 (HY000): Incorrect string value: ‘\xC3\xF7‘ for column ‘name‘ at row 1 ;
错误原因:cmd窗口,接受的字符只能是gbk,所以mysql client采用默认字符集编码gbk
查看系统所有字符集:
show variables like ‘character%‘;
MYSQL中共6处使用了字符集
client、connetion、result 和客户端相关,database、server、system 和服务器端相关
-- 仅对cmd 窗口使用 set names gbk; /* 或 */set character_set_results=gbk;
修改客户端字符集 [mysql] 后字符集 default-character-set=gbk,当修改my.ini配置文件之后,需要重启Mysql 数据库!
update table_name set status=1 where id in (。。。);
??如果没有where条件语句,默认修改所有行数据,危险操作,三思!
delete from employee where name=‘zhangsan‘;
start transaction;-- 开启事务 -- truncate table employee;-- truncate删除数据操作,事务不能回滚,数据无法恢复,相当于delete+commit,数据永久删除 delete from employee;-- 删除表中记录,delete删除的数据可以通过回滚操作来恢复数据! select * from test1;-- 查询表,记录不存在 rollback;-- 事务回滚,表中数据恢复!
-- 语法一:基本select语句 -- 查询表中所有列信息 select * from table_name; -- 查询表中指定列的信息 select 列名,列名... from table_name; -- distinct 用于过滤重复数据 select [distinct] * 列名,列名... from table_name; -- 语法二:使用表达式对查询对列进行运算 select 表达式(列名执行运算) from table_name; select name,chinese+math+english as 总分 from exam; -- 使用as定义列别名,as可以省略 select 列名 as 别名 from table_name; -- 语法三:使用where子句,进行条件过滤查询 select * from table_name where name=‘关羽‘;
select * from exam where english>=90 and english <= 100; select * from exam where english between 90 and 100; select * from exam where math in(65,75,85); select * from exam where name like ‘赵%‘; select * from exam where chinese is null; select * from exam where chinese is not null;
-- 语法:select * from 表名 order by 列名 asc|desc ; ---- asc升序 desc降序 -- 默认asc升序 select * from exam order by math; -- 按照英语进行降序排序,英语相同学员按照数学降序 select * from exam order by english desc,math desc;
-- 统计总分大于220的人数 select count(*) from exam where chinese+math+english > 220;
-- 统计一个班级语文、英语、数学的成绩总和(使用ifnull函数处理 null情况) select sum(ifnull(chinese,0)+ifnull(math,0)+ifnull(english,0)) from exam;
-- 求一个班级总分平均分(使用ifnull函数处理 null情况) select avg(ifnull(chinese,0)+ifnull(math,0)+ifnull(english,0)) from exam;
-- 求班级最高分和最低分(数值范围在统计中特别有用) select max(chinese+math+english) ,min(ifnull(chinese,0)+ifnull(math,0)+ifnull(english,0)) from exam;
-- 按照某列进行分组统计(分组操作,就是具有相同数据记录分到一组中,便于统计) -- 查询购买了几类商品,并且每类总价大于100的商品 select product,sum(price) from orders group by product having sum(price) > 100;
-- select 语句写法 : -- S-F-W-G-H-O 组合 select ... from ... where ... group by... having... order by ... ; -- 数据库解析的顺序:不能改变 -- 解析顺序 : from - where - group by - having - select - order by
链接: https://pan.baidu.com/s/1i4JU1NJ 密码: yfqn
MySQL:(一)
标签:action 方案 use line test 数据存储 分组 登录 sign