发表于: 2017-06-09 00:30:44
2 1236
今天的任务:
7.分别用Navciat和Sql语句去将本条数据记录的报名宣言改成老大最帅
mysql> UPDATE user_information SET declaration = "老大最帅" WHERE id = 1;
Query OK, 1 rows affected (0.02 秒)
8. 将表导出成Sql文件,并使用navciat和Sql分别尝试删除此条数据,并用之前备份的Sql恢复。
mysql> DROP TABLE user_information;
Query OK, 0 rows affected (0.03 秒)
9. 给姓名建索引,思考一下还应该给哪些数据建索引
index用于搜索数据, 所以qq号,宣言,地址,create_time, update_time, 肯定不需要索引。
ALTER TABLE `user_info`.`user_information` DROP INDEX `idx_name`, ADD INDEX `idx_name` USING BTREE (`name`) comment '';
不明白的是,在Navicat里选择字段时,为什么可以多选,怎么同时给几个变量做index呢??四个索引类型是什么还不了解。
今天学习的其他内容;
新建表格 CREAT TABLE name (id INTEGER PRIMARY KEY, name TEXT);可以在id加上AUTOINCREMENT 使其自增
和MySQL的不太一样?
插入数据 INSERT INTO table_name VALUES (1, “xxxx”);
SELECT * FROM table_name; 相当于选整个表格
SELECT * FROM table_name ORDER BY xxx; 以 xxx 排序显示表格
SELECT SUM(xxx) FROM table_name; 计算总和,类似的还有最大最小值平均值。
SELECT yyy, SUM(xxx) FROM table_name GROUP BY yyy; 先按yyy分组, 显示不同yyy下xxx的和。
条件 WHERE 语句 (筛选)
WHERE 后可以用 AND 和 OR; AND 优先级大于 OR; 可以用括号;
WHERE xxx IN(“a”,”b”,”c”); 等于多个OR
IN(SELECT xxx FROM another_table) IN里面可以是从其他表格里选的。
WHERE xxx = “ ”;
WHERE xxx LIKE “ ” ; LIKE是不完全匹配,等号是完全一样。
HAVING 和 WHERE 的区别,HAVING 用在 GROUP BY 的后面,是求过和的之后的条件,不考虑个人的值
GROUP BY xxx HAVING COUNT(*) > 10; 过滤次数。
/mysql -u root -p 用户名密码登陆
mysql> CREATE DATABASE test; 新建一个db
mysql> SHOW DATABASES; 查看db
mysql> USE test; 更换db
Database changed
mysql> SELECT DATABASE(); 不清楚为什么这个有个括号?
UPDATE user_information SET create_at = NOW() WHERE id = 1;
2017-06-08 17:53:55
其他一些高级的语法需要了再查。
······································
types :
INT 2^31 to -2^31 - 1
BIGINT 2^63 to -2^63 - 1
FLOAT 7位小数精确?
DOUBLE 15位小数?
CHAR,VARCHAR,ENUM,SET?
···································
index:关于索引
B-Tree; Hash; Log-Structured Merge; Other;
B-Tree : Balanced Tree
有 Root node, non-leaf nodes, leaf nodes
使用index的好处:1.读取更少的数据; 2. 读取整块的数据;3. 利用排序;
用Index可能降低插入删除数据的速度。
clustered / unclustered index 在Navicat中没有选项,如何知道用的是哪一种?
明天:
继续学习关于索引的内容。
问题: 索引的很多分类还不是很清楚。
评论