**MySQL学习过程的一点小笔记**
最近一段时间作为一个学生,我开始了对MySQL的学习,一下就是我学习过程中的一些笔记,欢迎大佬过来指正,我接下来也会继续自己笔记的上传。在这里谢谢大家的浏览。
– 寻找该表
SELECt * FROM goods_car;
– primary key 主键,不能空且唯一
– auto_increment 此列数据是自增长
CREATE TABLE goods_car(
id INT(4) PRIMARY KEY AUTO_INCREMENT,
uid INT(10),
good_id INT(10),
nums INT(10),
STATUS TINYINT(4),
creat_time INT(10),
update_time INT(10)
);
– 删除数据库
DROP TABLE test.people;
– 独立创建主键
– 当表已经生成以后,然后再独立添加主键
CREATE TABLE people(
people_id INT(4),
people_name VARCHAr(10)
);
– 添加主键
ALTER TABLE people ADD CONSTRAINT people_pk PRIMARY KEY (people_id);
– 非空约束
DROP TABLE people;
CREATE TABLE people(
people_id INT(4) PRIMARY KEY AUTO_INCREMENT,
people_name VARCHAr(10) NOT NULL
);
– 默认约束
DROP TABLE people;
– default默认值如果为空那么就使用默认值
CREATE TABLE people(
people_id INT(4) PRIMARY KEY,
people_name VARCHAr(10) NOT NULL DEFAULT ‘zhangsan’,
people_age INT(4) NOT NULL DEFAULT ‘22’
);
– 唯一约束unique
– 要不然为空要不然值必须不同
DROP TABLE people;
CREATE TABLE people(
people_id INT(4) PRIMARY KEY AUTO_INCREMENT,
people_name VARCHAr(10) UNIQUE
);
– 外键约束
DROP TABLE country;
– 父表
CREATE TABLE country(
country_id INT(4) PRIMARY KEY AUTO_INCREMENT,
country_name VARCHAr(10) UNIQUE
);
– 子表
CREATE TABLE people(
people_id INT(4) PRIMARY KEY AUTO_INCREMENT,
people_name VARCHAr(10) UNIQUE,
country_id INT(4),
– 建立外键约束
CONSTRAINT pk_people FOREIGN KEY (country_id) REFERENCES country(country_id)
);
– 基本查询
SELECT * FROM people,country;
– 添加列的操作
CREATE TABLE people(
people_id INT(4) PRIMARY KEY AUTO_INCREMENT,
people_name VARCHAr(10) UNIQUE
);
– ALTER TABLE 表名 ADD 列名 数据类型 操作
ALTER TABLE people ADD people_age INT(4) NOT NULL;
– 删除列的操作
– ALTER TABLE 表名 DROp COLUMN 列名
ALTER TABLE people DROP COLUMN people_age;
– 修改列的数据类型
– ALTER TABLE 表名 MODIFY COLUMN 列名 数据类型
ALTER TABLE people MODIFY COLUMN people_age VARCHAr(10);
– 创建两张表country.people
CREATE TABLE country(
country_id INT(4),
country_name VARCHAr(10) NOT NULL
);
CREATE TABLE people(
people_id INT(4),
people_name VARCHAr(10) NOT NULL,
country_id INT(4) NOT NULL
);
– 添加约束条件
– ALTER TABLE 表名 ADD CONSTRAINT 约束名称 约束类型
– 添加主键约束
ALTER TABLE people ADD CONSTRAINT pk_people PRIMARY KEY(people_id);
ALTER TABLE country ADD CONSTRAINT pk_country PRIMARY KEY(country_id);
– 添加外键约束
ALTER TABLE people ADD CONSTRAINT fk_people FOREIGN KEY (country_id) REFERENCES country(country_id);
– 删除约束
– 如果有外键,应先删除子表外键才能再删父表主键
– ALTER TABLE 表名 DROP 约束类型 [约束名称]
ALTER TABLE people DROP FOREIGN KEY fk_people;
ALTER TABLE country DROP PRIMARY KEY;
– 全查询 SELECT * FROM 表名1,表名2;
– 查询列 SELECt 列名1,列名2 FROM 表面1,表名2;
SELECt *FROM people,country;
SELECt country_id FROM people;
– 条件查询
– SELECt TABLE *|列名 FROM 表名 WHRER 条件表达式
– = <> <= >= and or not
SELECt * FROM people WHERe people_name=‘张三’ AND country_id=2;
– 排序查询
– SELECt *|列名 FROM 表名 ORDER BY 列名 DESC|ASC
– DESC是降序排序 ASC是升序排序
SELECt * FROM people ORDER BY people_name DESC;
– 模糊查询
– SELECt *|列名 FROM 表名 WHERe 列名 LIKE ‘’;
SELECt * FROM people WHERe people_name LIKE ‘张%’;-- 查询姓张的
SELECt * FROM people WHERe people_name LIKE ‘张_’;-- 查询姓张的且名字只有两个字
CREATE TABLE country(
country_id INT(4) PRIMARY KEY AUTO_INCREMENT,
country_name VARCHAr(10) NOT NULL
);
CREATE TABLE people(
people_id INT(4) PRIMARY KEY AUTO_INCREMENT,
people_name VARCHAr(10) NOT NULL,
people_age INT(4) NOT NULL
);
ALTER TABLE people ADD country_id INT(4) NOT NULL;
ALTER TABLE people ADD CONSTRAINT fk_people FOREIGN KEY (country_id) REFERENCES country(country_id);
SELECt * FROM people WHERe country_id=1;
– 两张表的连接查询
SELECt people_name,people_age,country_name FROM people a JOIN country b ON a.country_id=b.country_id WHERe country_name LIKE ‘中国%’;
– 左外连接
SELECt people_name,people_age,country_name FROM people a LEFT OUTER JOIN country b ON a.country_id=b.country_id WHERe country_name;
– 字符函数
– ascii函数
SELECt ASCIi(‘a’),ASCIi(‘A’),ASCIi(’#’);
– 字符转二进制,八进制,十六进制
SELECT BIn(‘10’),OCt(‘10’),HEx(‘10’);
– 将两个字符合并
SELECT CONCAt('hello ',‘world’);
– 字符的字节数
SELECT LENGTH(‘hello’),LENGTH(‘高胜祥’);
– 字符的长度,常用中文字符
SELECT CHAR_LENGTH(“高胜祥”);
– 返回字串第一次出现的位置
SELECT INSTR(‘hello’,‘h’);
– substring(str,pos,len) 返回str从pos位置开始的len字符
SELECT SUBSTRINg(‘helloworld’,2,5);
– replace(str,from_str,to_str) 将str的from_str用to_str替换
SELECT REPLACE(‘helloworld’,‘world’,‘hape’);
– 数学函数
– 求绝对值
SELECT ABS(-10.1);
– 求余
SELECT MOD(10,4);
– floor(n) 返回不大于n的最大整数
SELECT FLOOR(-2.1),FLOOR(2.1);
– ceiling(n) 返回不小于n的最小整数
SELECT CEILING(2.1),CEILING(-2.1);
– round(n,d) 返回n的四舍五入值,保留d位小数,d默认0
SELECT ROUND(2.4),ROUND(2.45,1),ROUND(2.1,-1);
– pow(x,y) x的y次幂
SELECT POW(2,4);
– sqrt(n) 返回非负数n的平方根
SELECT SQRT(4);
– rand() 返回值再0到1.0的随机浮点数的值
SELECT RAND();
– truncate(n,d) 截取数字n的d位小数并返回,不会四舍五入
SELECT TRUNCATE(RAND(),2),TRUNCATE(1.88,1);
– 日期函数
– 返回当前的系统时间,以’yyyy-mm-dd hh:mm:ss’格式
SELECT SYSDATE(),NOW();
– 以’yyyy-mm-dd’格式返回当前日期
SELECT CURRENT_DATE();
– year(date)返回date的年
SELECT YEAR(NOW());
– month(date) 返回date的月
SELECT MONTH(NOW());
– dayofyear(date) 返回date是这年的第几天
SELECT DAYOFYEAR(NOW());
– dayofmonth(date) 返回date是这月的第几天
SELECT DAYOFMONTH(NOW());
– weekday(date) dayofweek(date) 返回date是星期几 0=星期一…6=星期天
SELECT WEEKDAY(NOW());
– dayofweek(date) 返回date是星期几 1=星期一…7=星期天
SELECT DAYOFWEEK(NOW());
– 求时间的差值
SELECT DATEDIFF(CURRENT_DATE(),‘2018-09-12’);
再见。。。