zoukankan      html  css  js  c++  java
  • mysql学习笔记

    mysql学习笔记

    环境是phpStudy, 默认用户名密码都是root

    在本地windows环境下mysql是不区分大小写的

    mysql

    常用操作

    查看数据库

    show databases;
    show tables;
    

    创建数据库

    CREATE DATABASE 数据库名;
    

    删除数据库

    这个千万不能忘

    drop database 数据库名;
    

    选择数据库

    use 数据库名
    

    创建数据表

    CREATE TABLE table_name (column_name columns_type);
    

    示例

    CREATE TABLE `first`(
       `id` INT UNSIGNED AUTO_INCREMENT,
       PRIMARY KEY ( `id` )
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    注意这里的`是ESC键,不是单引号!
    最后必须指定字符集CHARSET(其他的可以不要)

    删除数据表

    drop table 数据表名
    

    插入数据

    INSERT INTO table_name ( field1, field2,...fieldN )
                           VALUES
                           ( value1, value2,...valueN );
    

    若提示uplicate entry 'xxx' for key 'PRIMARY'说明重复插入
    若未标明区分大小写,则行内元素默认不区分大小写

    查询数据

    SELECT column_name,column_name
    FROM table_name
    [WHERE Clause]
    [LIMIT N][ OFFSET M]
    
    查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
    SELECT 命令可以读取一条或者多条记录。
    你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
    你可以使用 WHERE 语句来包含任何条件。
    你可以使用 LIMIT 属性来设定返回的记录数。
    你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
    

    使用WHERE BINARY可以区分大小写

    更新数据

    UPDATE table_name SET field1=new-value1, field2=new-value2
    [WHERE Clause]
    
    例如
    UPDATE runoob_tbl SET runoob_title='学习 C++' WHERE runoob_id=3;
    

    删除数据

    DELETE FROM table_name [WHERE Clause]
    

    如果没有填写where则所有记录都会被删除!

    like子句

    like用在where之后,类似于正则表达式

    SELECT field1, field2,...fieldN 
    FROM table_name
    WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
    
    like 匹配/模糊匹配,会与 % 和 _ 结合使用。
    '%a'     //以a结尾的数据
    'a%'     //以a开头的数据
    '%a%'    //含有a的数据
    '_a_'    //三位且中间字母是a的
    '_a'     //两位且结尾字母是a的
    'a_'     //两位且开头字母是a的
    

    union子句

    union子句来连接多次查询

    SELECT expression1, expression2, ... expression_n
    FROM tables
    [WHERE conditions]
    UNION [ALL | DISTINCT]
    SELECT expression1, expression2, ... expression_n
    FROM tables
    [WHERE conditions];
    

    ALL表示返回所有重复值,DISTINCT表示去重

    这里的expression不能是*,而且上下要一致

    order by排序

    SELECT field1, field2,...fieldN table_name1, table_name2...
    ORDER BY field1, [field2...] [ASC [DESC]]
    
    如果字符集采用的是 utf8(万国码),需要先对字段进行转码然后排序:
    SELECT * FROM runoob_tbl
    ORDER BY CONVERT(runoob_title using gbk);
    

    ASC是升序排序,DESC是降序排序。默认为升序排序

    GROUP BY 分组

    GROUP BY 语句根据一个或多个列对结果集进行分组。

    在分组的列上可以使用 COUNT, SUM, AVG,等函数。

    SELECT column_name, function(column_name)
    FROM table_name
    WHERE column_name operator value
    GROUP BY column_name;
    

    注意function里面不能写*(废话

    连接join

    join可以实现在多个表中查询

    join分为inner join/left join/right join

    INNER JONI:取两个集合的并集
    LEFT JOIN: 读取左侧集合的所有数据,如果右侧对应的数据为空则返回NULL
    RIGHT JOIN: 与上相反

    mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a, tcount_tbl b WHERE a.runoob_author = b.runoob_author;
    +-------------+-----------------+----------------+
    | a.runoob_id | a.runoob_author | b.runoob_count |
    +-------------+-----------------+----------------+
    | 1           | 菜鸟教程    | 10             |
    | 2           | 菜鸟教程    | 10             |
    | 3           | RUNOOB.COM      | 20             |
    | 4           | RUNOOB.COM      | 20             |
    +-------------+-----------------+----------------+
    4 rows in set (0.01 sec)
    

    NULL值

    在mysql中,任何参数与NULL直接比较(!=, =)返回的结果都是false。但是我们可以通过IS NULL / IS NOT NULL

    正则表达式

    信息量有点大,咕咕咕

    事务

    好像用不到qwq

    ALTER

    修改数据表名或者修改数据表字段名

    添加/删除列
    删除列:`alter table tcount_tbl DROP nw;`
    增加列:`alter table tcount_tbl ADD nw INT;`
    

    默认增加的列会放置在最后,可以使用FIRST放到最前或者AFTER 列名放到某个字段后面

    修改列名
    使用MODIFY:ALTER TABLE tcount_tbl  MODIFY nw INT;//把nw改为INT类型
    使用CHANGE:ALTER TABLE tcount_tbl  CHANGE nw kkk INT; //把nw的列名改为kkk,类型为INT
    

    在修改的时候如果不添加NOT NULL则默认为NULL

    修改表名
    ALTER table tcount_tbl RENAME TO mytable;//把tcount_tbl修改为mytable
    
    复制表
    SHOW CREATE table  mytable;可以显示出mytable的结构
    

    导入数据

    mysql> create database abc;      # 创建数据库
    mysql> use abc;                  # 使用已创建的数据库 
    mysql> set names utf8;           # 设置编码 如果出现乱码可以尝试set names gbk;
    mysql> source /home/abc/abc.sql  # 导入备份数据库
    

    mysql数据类型

    大致分为数值、时间/日期、字符串(字符)

    使用php与mysql交互

  • 相关阅读:
    电脑护眼模式参数
    五险一金的常识
    python安装失败0x80240017
    安装Win7提示Windows无法安装到磁盘怎么办
    windows无法安装到这个磁盘怎样解决
    华硕笔记本BIOS设置详解
    eclipse运行一个类却运行的是另外一个类,报无法加载的类
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/arkiflow/p/10778908.html
Copyright © 2011-2022 走看看