MySQL笔记

一.安装mysql

彻底删除mysql并且重装的方法

删除
sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
sudo apt autoreclean
重装
sudo apt-get install mysql-server mysql-client

二.启动mysql
sudo service mysql start ##启动mysql服务器;

mysql -u root -p ##root用户链接服务器,并输入密码;

mysql> SELECT VERSION(), CURRENT_DATE; ##查询版本号和当前日期;

mysql大小写是等价的,一般关键字大写;

mysql>SELECT SIN(PI()/4, (4+1)*5);

两个简单的计算;

三.创建数据库并插入数据

mysql> CREATE DATABASE mysql_shiyan;   ##创建一个数据库
mysql> show databases;   ##显示有哪些数据库
mysql> use mysql_shiyan;    ##连接刚刚创建的数据库,成功后显示database changed
mysql>show tables; ##查看数据库中的表

mysql>CREATE TABLE employee(id int(10), name char(20), phone int(12));

创建一个表employee ,里面包含三列

mysql> CREATE TABLE department
-> (
-> dpt_name CHAR(20),
-> dpt_phone INT(12)
-> );

再创建一个department的table

数据类型 大小(字节) 用途 格式
INT 4 整数
FLOAT 4 单精度浮点数
DOUBLE 4 双精度浮点数

ENUM 单选,比如性别 ENUM('a','b','c')
SET 多选 SET('1','2','3')

DATE 3 日期 YYYY-MM-DD
TIME 3 时间点或持续时间 HH:MM:SS
YEAR 1 年份值 YYYY

CHAR 0~255 定长字符串
VARCHAR 0~255 变长字符串
TEXT 0~65535 长文本数据
mysql> SELECT * FROM employee; ##查看employee中的所有数据

mysql>INSERT INTO employee(id,name,phone) VALUES(01,’Tom’,110110110);
在employee中插入一个数据;

插入SQL代码:source,如:
Mysql>source /home/shiyanlou/Desktop/MySQL-04-01.sql

mysql>exit;     ##退出mysql,吃饭去了

四.约束

cd Desktop
git clone http://git.shiyanlou.com/shiyanlou/SQL3
sudo service mysql start
mysql -u root -p
w23256010

1.主键
主键 (PRIMARY KEY)是用于约束表中的一行,作为这一行的标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要。行中的主键不能有重复且不能为空。

2.默认值约束
3.唯一约束
4.非空约束
5.外键约束

五.SELECT语句
首先生成三张表格department,employee,和project;
1.基本语句:
SELECT 列名 FROM 表名 WHERE 限制条件;
SELECT name,age FROM employee WHERE age>25;
SELECT name,age,phone FROM employee WHERE name='Mary';
2.AND且 OR或
SELECT name,age FROM employee WHERE age<25 OR age>30;
SELECT name,age FROM employee WHERE age>25 AND age<30;
3.IN 和 NOT IN
SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt IN ('dpt3','dpt4');
4.通配符
其中 _ 代表一个未指定字符,% 代表不定个未指定字符
SELECT name,age,phone FROM employee WHERE phone LIKE '1101__';
SELECT name,age,phone FROM employee WHERE name LIKE 'J%';
5.对结果排序
默认情况下,ORDER BY的结果是升序排列,而使用关键词ASC和DESC可指定升序或降序排序。 比如,我们按salary降序排列,SQL语句为:
SELECT name,age,salary,phone FROM employee ORDER BY salary DESC;
7.内置函数和计算
函数名: COUNT SUM AVG MAX MIN
作用: 计数 求和 求平均值 最大值 最小值

SELECT MAX(salary) AS max_salary,MIN(salary) FROM employee;  ##AS的作用是重命名

8.子查询
设计多个表才能获得所需信息;
如想要知道Tom所在部门做了几个工程
SELECT of_dpt,COUNT(proj_name) AS count_project FROM project
WHERE of_dpt IN
(SELECT in_dpt FROM employee WHERE name='Tom');
9.连接查询JOIN
把多个表当成一个表来使用
SELECT id,name,people_num
FROM employee,department
WHERE employee.in_dpt = department.dpt_name
ORDER BY id;
定价于
SELECT id,name,people_num
FROM employee JOIN department
ON employee.in_dpt = department.dpt_name
ORDER BY id;

六.数据库的删除和修改
删除一个database
mysql> DROP DATABASE ‘database name’;
修改表名
RENAME TABLE former_name TO new_name;
ALTER TABLE former_name TO new_name;
ALTER TABLE former_name TO new_name;
删除table
DROP TABLE table_name;

对表的修改
1.增加一列
ALTER TABLE table name ADD COLUMN column_name data_type restrict;
ALTER TABLE table name ADD column_name data_type restrict;
规定列的位置
ALTER TABLE employee ADD weight INT(4) DEFAULT 120 AFTER age;

把weight加入age的后面;

或者在最后加上FIRST加在最前面;
2.删除一列
ALTER TABLE 表名字 DROP COLUMN 列名字;
ALTER TABLE 表名字 DROP 列名字;
3.重命名一列
ALTER TABLE 表名字 CHANGE 原列名 新列名 数据类型 约束;

后面的数据类型不能省略,否则重命名失败

4.改变数据类型
ALTER TABLE 表名字 MODIFY 列名字 新数据类型;

对表的内容修改
1.修改表中的某个值
UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 条件;
例如把’Tom’的age改为21,salary改为3000;
SELECT * FROM employee WHERE name=’Tom’;
UPDATE employee SET age=21,salary=3000 WHERE name=’Tom’;
2.删除一行记录
DELETE FROM 表名字 WHERE 条件;

六.索引及其他基本操作
1.索引
索引是一种与表有关的结构,它的作用相当于书的目录,可以根据目录中的页码快速找到所需的内容。
当表中有大量记录时,若要对表进行查询,没有索引的情况是全表搜索:将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录。这样做会消耗大量数据库系统时间,并造成大量磁盘 I/O 操作。
而如果在表中已建立索引,在索引中找到符合查询条件的索引值,通过索引值就可以快速找到表中的数据,可以大大加快查询速度。

对某个列添加索引:
ALTER TABLE 表名字 ADD INDEX 索引名 (列名);
CREATE INDEX 索引名 ON 表名字 (列名);
2.视图
视图是从一个或多个表中导出来的表,是一种虚拟存在的表。
CREATE VIEW 视图名(列a,列b,列c) AS SELECT 列1,列2,列3 FROM 表名字;
打印视图:
SELECT * FROM v_emp;

3.导入导出
LOAD DATA INFILE ‘文件路径’ INTO TABLE 表名字;
报错:The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
是因为mysql没有修改本地文件的权限,除非修改权限;
输入mysql>show variables like '%secure%'; ##这个语句屌爆了
找到了secure_file_priv在/var/lib/mysql-files/
于是把load的文件放在这个路径下就行了.
sudo cp 想要移动的文件或路径 移动后的路径
-b 同名,备分原来的文件 -f 强制覆盖同名文件 -r 按递归方式保留原目录结构复制文件
导出也一样要在secure_file_priv路径下,语句是:
Mysql>SELECT 哪几列 INTO OUTFILE ‘文件路径’ FROM 表名字;

4.备份
mysqldump -u root -p 数据库名>备份文件名; #备份整个数据库
mysqldump -u root -p 数据库名 表名字>备份文件名; #备份整个表

5.恢复
source 就是一条恢复语句

七.MySQL服务安装及命令使用
Linux必须安装MySQL-server和MySQL-client,想要更高级还要MySQL-Max RPM

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容