zoukankan      html  css  js  c++  java
  • Mysql学习

    连接命令

    mysql -uroot -p123456//-u账号,-p密码
    

    查看数据库

    show databases;
    

    创建删除数据库

    create database test;
    drop database test;
    

    选择数据库

    use test;
    

    查看表

    show tables;
    

    创建删除表

    创建删除表必须要在库下进行

    create table test(id int,user varchar(10),password varchar(32));
    drop table test(名称,类型);
    

    查看建表的语句

    show create table test;//表名
    

    查看建库的语句

    show create database test;//库名
    

    查看表的结构

    desc test;//表名
    

    改变表的字段

    alter table user change password pass varchar(45);
    //alter table 表名 change 被修改的内容 	修改为		类型;
    

    删除表的字段

    alter table user drop password;
    

    插入表的字段

    alter table test add user varchar(23) after username;
    alter table test add task int first;
    

    更改表的名字

    alter table test rename user_name;
    

    md5加密后是32位字符串。

    添加普通索引

    alter table test add index(password);
    

    添加唯一索引

    alter table test add unique(username);
    

    添加全文索引

    alter table hahah add fulltext(username);
    

    查看索引

    show index from hahah;
    

    查看当前表在哪个库下面

    select database();
    

    数据操作

    增加数据

    insert into 表名 values(1,"username","password");
    
    insert into test(username,password) values("user",133131);//有选择的插入
    
    insert into test(username,password) values("user",133131),("tom",2344),("Jack",133);//插入多条数据
    

    删除数据

    delete * from 表名;-- 删除表中所有数据
    delect from 表名 where id=4;#根据条件删除表中的数据
    

    修改数据

    update 表名 set id=4;-- 修改id的值全部为4
    update 表名 set id_1=1,id_2=3 where id=1;-- 根据条件修改表中的数据
    

    查询数据

    select * from 表名;#查看表中所有的字段
    select 字段1,字段2 from 表名;#查询表中的指定字段
    

    条件查询

    select name,age from user where age>10;-- 单一条件查询
    select name,age,height from user where age>78 and heught <180;-- 多条件查询 
    

    模糊查询

    [NOT] LIKE  '字符串'
    
    • NOT :可选参数,字段中的内容与指定的字符串不匹配时满足条件。
    • 字符串:指定用来匹配的字符串。“字符串”可以是一个很完整的字符串,也可以包含通配符。
    select name from user where name like 'T%';-- 查询名字是字母T开头
    select name from user where name like '%T%';-- 查询名字中带有字母T
    

    “%”是 MySQL 中最常用的通配符,它能代表任何长度的字符串,字符串的长度可以为 0。例如,a%b表示以字母 a 开头,以字母 b 结尾的任意长度的字符串。该字符串可以代表 ab、acb、accb、accrb 等字符串。匹配的字符串必须加单引号或双引号。

    select name from user wher name like '__T';-- 查询名字以T结尾并且前面只有两个字母的名字
    

    “_”只能代表单个字符,字符的长度不能为 0。例如,a_b可以代表 acb、adb、aub 等字符串。

    范围查询

    [NOT] BETWEEN 取值1 AND 取值2 
    
    • NOT:可选参数,表示指定范围之外的值。如果字段值不满足指定范围内的值,则这些记录被返回。
    • 取值1:表示范围的起始值。
    • 取值2:表示范围的终止值。
    select age from user where age between 12 and 20;-- 查询年龄在12~20之间的数据
    

    空值查询

    IS [NOT] NULL
    

    “NOT”是可选参数,表示字段值不是空值时满足条件。

    select name from user where name id null;-- 查询字段为空的数据
    

    分组查询

    GROUP BY  <字段名>
    

    “字段名”表示需要分组的字段名称,多个字段时用逗号隔开。

    数据表连接

    交叉连接

    SELECT <字段名> FROM <表1> CROSS JOIN <表2> [WHERE子句]
    SELECT <字段名> FROM <表1>, <表2> [WHERE子句] 
    
    • 字段名:需要查询的字段名称。
    • <表1><表2>:需要交叉连接的表名。
    • WHERE 子句:用来设置交叉连接的查询条件。

    内连接

    SELECT <字段名> FROM <表1> INNER JOIN <表2> [ON子句]
    
    • 字段名:需要查询的字段名称。
    • <表1><表2>:需要内连接的表名。
    • INNER JOIN :内连接中可以省略 INNER 关键字,只用关键字 JOIN。
    • ON 子句:用来设置内连接的连接条件。

    外连接

    左连接
    SELECT <字段名> FROM <表1> LEFT OUTER JOIN <表2> <ON子句>
    
    • 字段名:需要查询的字段名称。
    • <表1><表2>:需要左连接的表名。
    • LEFT OUTER JOIN:左连接中可以省略 OUTER 关键字,只使用关键字 LEFT JOIN。
    • ON 子句:用来设置左连接的连接条件,不能省略。
    右连接
    SELECT <字段名> FROM <表1> RIGHT OUTER JOIN <表2> <ON子句>
    
    • 字段名:需要查询的字段名称。
    • <表1><表2>:需要右连接的表名。
    • RIGHT OUTER JOIN:右连接中可以省略 OUTER 关键字,只使用关键字 RIGHT JOIN。
    • ON 子句:用来设置右连接的连接条件,不能省略。

    对数据进行加减乘除,取模运算

    select num ,num+10,num-10,num/10,num%2,mod(num,3) from numbers;
    

    逻辑运算符

    逻辑非运算(NOT 或者 !)

    • 当操作数为 0(假)时,返回值为 1;
    • 当操作数为非零值时,返回值为 0;
    • 当操作数为 NULL 时,返回值为 NULL。

    NOT 的优先级低于 +,相反,! 的优先级别要高于 +。使用时最好使用括号。

    逻辑与运算符(AND 或者 &&)

    • 当所有操作数都为非零值并且不为 NULL 时,返回值为 1;
    • 当一个或多个操作数为 0 时,返回值为 0;
    • 操作数中有任何一个为 NULL 时,返回值为 NULL。

    AND 运算符可以有多个操作数,但要注意多个操作数运算时,AND 两边一定要使用空格隔开,不然会影响结果的正确性。

    逻辑或运算符(OR 或者 ||)

    • 当两个操作数都为非 NULL 值时,如果有任意一个操作数为非零值,则返回值为 1,否则结果为 0;
    • 当有一个操作数为 NULL 时,如果另一个操作数为非零值,则返回值为 1,否则结果为NULL;
    • 假如两个操作数均为 NULL 时,则返回值为 NULL。

    异或运算(XOR 运算符)

    • 当任意一个操作数为 NULL 时,返回值为 NULL;
    • 对于非 NULL 的操作数,如果两个操作数都是非 0 值或者都是 0 值,则返回值为 0;
    • 如果一个为0值,另一个为非 0 值,返回值为 1。
    • 相同返回0,不相同返回1。

    比较运算符

    等于运算(=)

    = 运算符用来比较两边的操作数是否相等,相等的话返回 1,不相等的话返回 0。具体的语法规则如下:

    • 若有一个或两个操作数为 NULL,则比较运算的结果为 NULL。
    • 若两个操作数都是字符串,则按照字符串进行比较。
    • 若两个操作数均为整数,则按照整数进行比较。
    • 若一个操作数为字符串,另一个操作数为数字,则 MySQL 可以自动将字符串转换为数字。

    安全等于运算符(<=>)

    <=> 操作符和 = 操作符类似,不过 <=> 可以用来判断 NULL 值,具体语法规则为:

    • 当两个操作数均为 NULL 时,其返回值为 1 而不为 NULL;
    • 而当一个操作数为 NULL 时,其返回值为 0 而不为 NULL。

    不等于运算符(<> 或者 !=)

    与 = 的作用相反,<> 和 != 用于判断数字、字符串、表达式是否不相等。对于 <> 和 !=,如果两侧操作数不相等,返回值为 1,否则返回值为 0;如果两侧操作数有一个是 NULL,那么返回值也是 NULL。

    小于等于运算符(<=)

    小于运算符(<)

    大于等于运算符(>=)

    大于运算符(>)

    条件成立返回1,条件不成立返回0,如果含有NULL,返回NULL。

    IS NULL、ISNULL() 和 IS NOT NULL 运算符

    IS NULL 或 ISNULL 运算符用来检测一个值是否为 NULL,如果为 NULL,返回值为 1,否则返回值为 0。ISNULL 可以认为是 IS NULL 的简写,去掉了一个空格而已,两者的作用和用法都是完全相同的。

    IS NOT NULL 运算符用来检测一个值是否为非 NULL,如果是非 NULL,返回值为 1,否则返回值为 0。

    SELECT NULL IS NULL,ISNULL(NULL),ISNULL(10),10 IS NOT NULL;#1	1	0	 1
    

    BETWEEN AND 运算符

    BETWEEN AND 运算符用来判断表达式的值是否位于两个数之间,或者说是否位于某个范围内,它的语法格式如下:

    expr BETWEEN min AND max
    

    expr 表示要判断的表达式,min 表示最小值,max 表示最大值。如果 expr 大于等于 min 并且小于等于 max,那么返回值为 1,否则返回值为 0。

    SELECT 4 BETWEEN 2 AND 5,4 BETWEEN 4 AND 6,12 BETWEEN 9 AND 10;#1	1	0
    

    对于字符串类型的比较,按字母表中字母顺序进行比较。

  • 相关阅读:
    ThinkPHP 中入口文件中的APP_DEBUG为TRUE时不报错,改为FALSE时报错
    ASP.NET LinqDataSource数据绑定后,遇到[MissingMethodException: 没有为该对象定义无参数的构造函数。]问题。
    error 2593 operator << 不明确的可能的解决方法
    C++读取mysql中utf8mb4编码表数据乱码问题及UTF8转GBK编码
    arcgis flexviewer中由Application向widget传值
    Flash Builder中“Error: #2036 加载未完成”错误的解决方法
    ArcGIS Server API for JavaScript调用错误:已阻止跨源请求:同源策略禁止读取位于......
    Win10下E3-1231 V3开启Intel虚拟化技术(vt-x)安装HAXM
    GPS accuracy in Android
    解决Win7旗舰版开机后无线网络识别非常慢的问题
  • 原文地址:https://www.cnblogs.com/xgcl/p/14520739.html
Copyright © 2011-2022 走看看