打开数据库testmysql -uroot -proot test
操作MYSQL语据库创建数据库语法:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name[DEFAULT] CHARACTER SET [=] charset_name{} 必选项| 选择,两项或三项中选择[] 有或者没有,称为可选项例:CREATE DATABASE t1; 创建数据库t1CREATE DATABASE IF NOT EXISTS t1; 忽略存在错误查看当前服务器下的数据表列表:SHOW {DATABASE | SCHEMAS}[LIKE 'pattern' | WHERE expr]例:SHOW WARNINGS; 查看警告CREATE DATABASE IF NOT EXISTS t2 CHARACTER SET utf8; //创建utf8编码的数据库修改数据库ALTER {DATABASE | SCHEMA} [db_name];[DELETE] CHARACTER SET [=] charset_name;例:ALERT DATABASE t2 CHARACTER SET = gbk; //修改t2表字符编码SHOW CREATE DATABASE t2; //查看t2表创建信息删除数据库DROP {DATABASE | SCHEMA} [IF EXISTS] db_name例:DROP DATABASE t1; //删除数据库表1SHOW DATABASES; //查看数据库列表,已成功删除DROP DATABASE IF EXISTS t1; //再次删除 不显示错误提示SHOW WARNINGS; //显示错误提示总结:MySQL默认的端口号是:3306MySQL中的超级账号是:root创建数据库:CREATE DATABASE修改数据库:ALTER DATABASE删除数据库:DROP DATABASE
子查询定义和条件:子查询(Subquery)是指出现在其他SQL语句内的SELECT子句。查询:这里的查询指所有SQL语句返回的结果例如SELECT FROM t1 WHERE col1 = (SELECT col2 FROM t2);其中SELECT FROM t1,称为Outer Query / Outer StatementSELECT col2 FROM t2,称为SubQuery子查询指嵌套在查询内部,且必须始终出现在圆括号内。子查询可以包含多个关键字或条件如DISTINCT、GROUP BY、ORDER BY、LIMIT、函数等子查询的外层查询可是SELECT、INSERT、UPDATE、SET或DO。子查询结果使用比校运算符的子查询=、>、<、>=、<=、<>、!=、<=>语法结构operand comparison_operator subquery例:查询商品平均价格SELECT AVG(goods_price) FROM test_goods;//AVG求平均值函数SELECT ROUND(AVG(goods_price),3) FROM test_goods;//ROUND四舍五入保留3位小数,结果为6326.500//22个商品中哪些大于平均值SELECT goods_id,goods_name,goods_price FROM test_goods WHERE goods_price >= 6326.500;//6326.500上一个查询的结果使用子查询的写法:SELECT goods_id,goods_name,goods_price FROM test_goods WHERE goods_price >= (SELECT ROUND(AVG(goods_price),3) FROM test_goods);用ANY、SOME或ALL修饰的比较运算符operand comparison_operator ANY(subquery)operand comparison_operator SOME(subquery)operand comparison_operator ALL(subquery)如果不加修改,报错:Subquery returns more than 1 row;ANY、SOME、ALL关键字返回的结果:
、>=: ANY:最小值 SOME:最小值 ALL:最大值<、<=: ANY:最大值 SOME:最大值 ALL:最小值=: ANY:任意值 SOME:任意值 ALL:无<>、!=: ANY:无 SOME:无 ALL:任意值
查询超级本类型商品的价格SELECT goods_price FROM test_goods WHERE goods_cate = '超级本';SELECT * FROM test_goods WHERE goods_price >= SOME(SELECT goods_price FROM test_goods WHERE goods_cate = '超级本');
Archive相关知识点1.并发控制:当多个连接对记录进行修改时保证数据的一致性和完整性两个用户同时登录,其中一个用户删除id=22的记录,另外一个用户则要读取id=22的记录,发生的结果可能是正在读取的用户报错而退出,也有可能得到一条与实际记录不符的信息解决这类问题的经典方案是并发控制。锁:共享锁(读锁):在同一时间段内,多个用户可以读取同一个资源,读取过程中数据不会发生任何变化。排他锁(写锁):在任何时候只能有一个用户写入资源,当进行写锁时会阻塞其他的读锁或者写锁操作。锁颗粒:表锁,是一种开销最小的锁策略行锁,是一种开销最大的锁策略 支持最大并发事务:事务用于保证数据库的完整性用户A ----> 转账200元 ----> 用户B实现步骤:1.从A账户减掉200元(账户余额大于等于200)2.在B账号上增加200元事务的特性:
持久性(Durability)外键:是保证数据一致性的策略索引:是对数据表中一列或多列的值进行排序的一种结构普通索引唯一索引全文索引btree索引hash索引...各种存储引擎的特点MyISAM:存储限制:256TB 事务安全:- 支持索引:支持 锁颗粒:表锁 数据压缩:支持 支持外键:-InnoDB:存储限制:64TB 事务安全:支持 支持索引:支持 锁颗粒:行锁 数据压缩:- 支持外键:支持Memory:存储限制:有 事务安全:- 支持索引:支持 锁颗粒:表锁 数据压缩:- 支持外键:-Archive:存储限制:无 事务安全:- 支持索引: 锁颗粒:行锁 数据压缩:支持 支持外键:-CSV:为每个表创建csv后缀文件应用的最多的存储引擎:MyISAM : 适用于事务处理不多的情况InnoDB : 适用于事务处理比校多,需要有外键支持的情况。设置存储引擎:1.通过修改MySQL配置文件实现default-storage-engine = engine_name//engine_name高版本默认是InnoDB;2.通过创建数据表命令实现CREATE TABLE table_name(...) ENGINE = engine_name;3.通过修改数据表命令实现ALTER TABLE table_name ENGINE [=] engine_name;