MySQL基础知识

来源:互联网 发布:深圳软件协会 编辑:程序博客网 时间:2024/06/06 10:40
 清屏:cls
                      MySQL基础
启动MySQL   net start mysql

关闭MySQL   net stop  mysql

登录   mysql -uroot -p

退出   mysql>exit;
       mysql>quit;
       mysql>\p;

显示当前服务器版本   SELECT VERSION();
显示当前时间   SELECT NOW();
显示当前用户  SELECT USER();

MySQL默认的端口号是:3306
MySQL超级用户是:root
创建数据库:CREATE DATABASE
修改数据库:ALTER DATABASE
删除数据库:DROP DATABASE


                       数据类型
整型:TINYINT  SMALLINT   MEDIUMINT  INT BIGINT
浮点型: FLOAT[(M,D)]  DOUBLE[(M,D)]  M为数字总位数,D为小数点后面的位数
字符型:VERCHAR(M)
       
  

                            数据表
查看有什么数据库:SHOW DATABASES;
打开数据库:USE 数据库名称
查看当前数据库:SELECT DATABASES;
创建数据表:CREATE TABLE[IF NOT EXISTS]table_name(
            ageTINYINT UNSGINED(无符号位),
             ......
           )
查看数据表列表:SHOW TABLES[FORM db_name];使用form可以查看别的数据库中的表
查看数据表结构:SHOW COLUMNS FORM tbl_name;
插入记录;INSERT [INTO]   tbl_name[(coi_name,...)] VALUES(VAL,...);
查找记录:SELECT expr,...FORM tbl_name(WHERE   .....);
空值与非空
          CREATE TABLE[IF NOT EXISTS]table_name(
            age1 TINYINT UNSGINED(无符号位)  NOT NULL,
            age2 TINYINT UNSGINED(无符号位)  NULL,//默认是可以为空
             ......
           )

自动编号AUTO_INCREMENT
1自动编号,且必须与主键组合使用
2默认情况下,起始值为1,增量为1

主键PRIMARY KEY
1每张表只能有一个主键
主键保证记录的唯一性
主键自动为NOT NULL
   CREATE TABLE[IF NOT EXISTS]table_name(
            age1 TINYINT UNSGINED(无符号位)  PRIMARY KEY,
             ......
           )



唯一约束UNIQUE KEY
默认约束:DEFAULT



更新记录UPDATE
    语法:UPDATE tb_name SET age=age+10 WHERE name="chaihuo";
删除记录FELETE
     语法:DELETE FORM tb_name WHERE name="chaihuo";



查询结果分组GROUP BY
   语法:SELECT  sex FORM users BY sex;


HCAING分组条件
   语法:SELECT  sex,age FORM users BY sex HAVING age>35;
   主要:此时HAVING后面只有两种情况1)聚合函数2)在select后面


对查询结果进行排序ORDER BY
   语法:SELECT * FORM users ORDER BY id DESC;



              运算符和函数
字符运算符
CONCAT()字符连接
CONCAT_WS()使用指定的分隔符进行字符连接
FORMAT()数字格式化
LOWER()UPPER()转换成小/大写字母
LEFT() RIGHT()获取左/右侧字符
LENGTH()获取字符串长度
SUBSTRING()字符串截取
[NOT] LIKE 模式匹配
REPLACE()字符串替换


数值运算符与函数
CEIL() 进一取整
DIV 整数除法
FLOOR()舍一取整
MOD 取余数
POWER() 幂运算
ROUND()四舍五入


比较运算符与函数
[NOT] BETWEEN...AND...            [NOT]IN()    IS[NOT]NULL


信息函数
CONNECTION_ID()  连接id
DATEBASE()当前数据库
LAST_INSERT_ID()最后插入记录的Id号
USER()当前用户
VERSON()版本信息


聚合函数
AVG()平均值
COUNT()计数
MAX()  MIN()  SUM()


加密函数
MD5()信息摘要算法
PASSWORD()密码算法


               

                     子查询和连接
将查询结果写入数据表
INSERT[INTO] tbl_name[(col_name,...)] SELECT...
例子:INSERT tdb_goods(cate_name)  SELECT good_cake FORM table GROUP BY  good_cake;
         

多表更新
UPDATE table1 INNER JOIN table2 ON table1_name=table2_name SET table1_id=table2_di;


CREATE...SELECT
创建数据表同时将查询结果写入到数据表
CREATE TABLE table_name  [(create_definine)] select_statement

例:CREATE TABLE table1(
     id  SMALLINT UNSIGNED PRIMARY KEY  AUTO_INCREMENT,
     name VARCHAR(20)  NOT  NULL)
     SELECT SELECT good_cake FORM table GROUP BY  good_cake;
   )





              存储引擎
通过修改MySQL配置文件实现
1)-ddfault-storage-engine=engine
2)通过创建数据表命令实现
  CREATE TABLE[IF NOT EXISTS]table_name(
            age1 TINYINT UNSGINED(无符号位)  NOT NULL,
            age2 TINYINT UNSGINED(无符号位)  NULL,//默认是可以为空
             ......
           )ENGINE=engine;
通过修改数据表命令实现
-ALTER TABLE table_name ENGINE[=]engine_name;

存储引擎
MyISAM:存储现在可达256TB,支持索引。表级锁定,数据压缩
InnoDB:存储限制为64TB,支持事务和索引。锁颗粒为行锁


原创粉丝点击