MySQL 笔记

启动MySQL服务:1.cmd---services.msc  ; 2. cmd---"net start mysql  (net stop mysql) " . (mysql 对应服务器名字).

登录MySQL数据库: 1.windows方式登录:"mysql  -h hostname  -u usename -p".  2.使用MySQL Commande Line Client 登录;   3.图形管理工具登录.

创建数据:“CREATE DATABASE DBname;".

使用数据库:"USE DBname;".

查看系统中所有的数据库:"SHOW DATABASES;"

查看数据库中的表"show tables from BDname"

查看表中的列“show columns from TABLEname”

查看数据库信息:"SHOW CREATE DATABASE  DBname".

查看引擎:"SHOW VARIABLES LIKE 'storage_engine';".

创建表:CREATE TABLE <表名>

                (

                    字段名1,数据类型[列级别约束条件][默认值],

                    字段名2,数据类型[列级别约束条件][默认值],

                    ……

                    [表级别约束条件]

                  );

删除表:"DROP TABLE [IF EXISTS]表1,表2,……表n;"

约束条件:

                 CREATE TABLE <表名>

                (

                    字段名1,数据类型 PRIMARY KEY,                                            //主键

                    字段名2,数据类型  NOT NULL,                                                //非空

                    字段名3,数据类型  UNIQUE,                                                    //唯一

                    字段名4,数据类型  DEAFAULT 默认值,                                    //默认

                    字段名5,数据类型  AUTO_INCREMENT,                                //自动增加

                    ……

                    PRIMARY KEY(字段名1,字段名2,……)                                      //主键

                    [CONSTRAINT<外键名>] FOREIGN KEY 字段名1[,字段名2,……] REFERENCES<主表名> 主键列1[,主键列2,……]   //外键


                  );


查看数据表结构: "DESCRIBE/DESC 表名;".

查看表详细结构:"SHOW CREATE TABLE <表名\G>;".

修改表名:" ALTER TABLE <旧表名> RENAME [TO] <新表名>;"

修改字段数据类型:"ALTER TABLE<表名> MODIFY <字段名> <数据类型>;"

修改字段名:"ALTER TABLE <表名> CHANGE <旧字段名><新字段名><新数据类型>"                 //<新数据类型>不能为空

添加字段:"ALTER TABLE <表名> ADD< 新字段名><数据类型>[约束条件][FIRST | AFTER 已存在段名字]".

删除字段:"ALTER TABLE <表名> DROP <字段名>;"

修改字段排列位置:"ALTER TABLE <表名> MODIFY <字段1><数据类型> FIRST | AFTER <字段2>;"

更改表的存储引擎:"ALTER TABLE <表名> ENGINE=<更改后的存储引擎名>;"

删除表的外键约束:”ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;“


------------------------------------------------------------------数据类型----------------------------------------------------------------------------------------

整形

TINYINT1B
SMALLINT2B
NEDIUMINT3B
INT(INTEGER)4B
BIGINT8B
浮点型

FLOAT4B
DOUBLE8B
DECIMAL(M,D),DECM+2B
时间

YEARYYYY1B
TIMEHH:MM:SS3B
DATEYYYY-MM-DD3B
DATETIMEYYYY-MM-DD HH:MM:SS8B
TIMESTAMPYYYY-MMM-DD HH:MM:SS4B

二进制0

BIT(M)(M+7)/8 B
BINARY(M)M B
VARBINARY(M)M+1 B
TNYBLOB(M)L+1
BLOB(M)L+2
MEDIUMBLOB(M)L+3
LONGBLOB(M)L+4
------------------------------------------------------------------函数----------------------------------------------------------------------------------------

数学函数

绝对值ABS(x),圆周率PI(),平方根SQRT(x),求雨函数MOD(x,y),获取整数CEIL(x),CEIL(x),FLOOR(x),随机数RAND(),RAND(x),四舍五入ROUND(x),ROUND(x,y)TRUNCATE(x,y)

符号函数SIGN(x),幂运算函数POW(x,y),POWER(x,y),EXP(x),对数运算函数LOG(x),LOG10(x),角度弧度转换RADIANS(x),DEGREES(x)

字符串函数

计算字符串字符个数CHAR_LENGTH(str),字符串长度LENGTH(str),合并字符串CONCAT(s1,s2,...),CONCAT(x,s1,s2,...),替换字符串INSERT(s1,x,len,s2),

字母大小写转换LOWER(str) / LCASE(str), UPPER(str) / UCASE(str),获取指定长度字符串LEFT(s,n),填充字符串函数LPAD(s1,len,s2), RPAD(s1,len,s2),

删除空格函数LTRIM(s), RTRIM(s), TRIM(s),删除指定字符串TRIM(s1 FROM s),重复生成字符串REPEAT(s,n),空格函数SPACE(n),替换函数REPLACE(s,s1,s2)

比较字符串大小函数STRCMP(s1,s2),获取子串函数SUBSTRING(s,n,len),匹配子串开始位置的函数LOCATE(str1,str2) / POSITION(str1 IN str2) / INSERT(str,str1),

逆序串REVERSE(s),返回指定位置的字符串函数ELT(n,str1,str2,str3),返回指定字符串位置的函数FIELD(s,s1,s2)

--------------------------------------------------------------------------查询---------------------------------------------------------------------------------

基本查询:

1.SELECT 字段1,字段2,……字段n  FROM  表名;

2.SELECT * FROM 表名; (*通配符查询所有字段)

WHERE 查询条件:

1.操作符=,<>/!= ,<,<=,>,>=,BETWEEN)

 2.带IN / NOT IN关键字的查询( 用括号将检索条件括起来)

    SELECT s_id,f_name,f_price

    FROM fruits

   WHERE s_id IN(102,103)

   ORDER BY f_name;

3.BETWEEN AND: WHERE BETWEEN value1 AND value2;(包含value1,2)

    NOT BETWEEN AND (不包含v1,v2)

4.LIKE搭配通配符

    4.1 百分号'%' 匹配任意长度的字符

     SELECT f_id,f_name

     FROM fruits

     WHERE f_name LIKE 'a%';

     ps: 以a开头:a%

            以a结束:%a

            包含a: %a%

             以a开头以b结尾:a%b

     4.2下划线通配符'_',一次只能匹配一个字符 WHERE LIKE '_____y';

5.查询空值 IS NULL / NOT IS NULL; 

    WHERE value IS NULL;

6. AND / OR 可以增加查询条件;PS:用IN可以达到OR的效果,但是IN速度快于OR,AND,OR可以一起使用且AND优先级较高;

查询显示

1.查询结果不重复  SELECT DISTINCT 字段名 FROM 表名;

2.ORDER BY 排序

   SELECT *

   FROM tables

   ORDER BY value1[(DESC | ASC)],value2[(DESC | ASC)],...,value n[(DESC | ASC)];

分组GROUP BY


函数:

COUNT()

count(*)计算表中的总行数:SELECT count(*)  AS  newrow  FROM  table; 


内连接查询

 (1)  SELECT suppliers.s_id,s_name,f_name,f_price

        FROM fruits,suppliers

        WHERE fruits.s_id = suppliers.s_id;

(2)  SELECT suppliers.s_id,s_name,f_name,f_price

      FROM fruits  INNER JOIN suppliers 

       ON fruits.s_id = suppliers.s_id;


自连接查询

SELECT f1.f_id,f_name

FROM fruits AS f1, fruits AS f2

WHERE f1.f_id = f2.f_id AND f2.f_id='a1';


左连接(右)

SELECT customers.c_id,orders.o_num

FROM customers LEFT(RIGHT) OUTER JOIN orders

ON customers.c_id = orders.c_id;


带ANY, ALL子查询

SELECT num1 FROM tb1 WHERE num1> ANY(ALL) (SELECT * FROM tb2);

带EXISTS子查询(NO EXISTS同理)

SELECT * FROM fruits

WHERE EXISTS

(SELECT s_name FROM suppliers WHERE s_id = 107);

首先判断子查询,如果为true则进行外部查询,否则外层语句不进行查询


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值