• mysql 常用语句


    打开数据库:sudo service mysql start
    使用root 登录:mysql -u root
    创建数据库:CREATE DATABASE mysql_shiyan;
    查询数据库:show databases;
    连接数据库:use mysql_shiyan;
    查询表:show tables;
    创建表:CREATE TABLE employee(id int(10),name char(20),phone(12));
    删除表:DROP DATABASE mysql_shiyan;
    插入表数据:INSERT INTO employee(id ,name,phone) VALUES (01,'TOM',18868830303);
     
    1、数据类型:
    INT 4 整数
    FLOAT 4 单精度浮点数
    DOUBLE 8 双精度浮点数
    ENUM 单选,比如性别 ENUM('a','b','c')
    SET 多选 SET('1','2','3')
    DATE 3 日期 YYYY-MM-DD
    TIME 3 时间点或持续时间 HH:MM:SS
    YEAR 1 年份值 YYYY
    CHAR 0~255 定长字符串
    VARCHAR 0~255 变长字符串
    TEXT 0~65535 长文本数据
     
    2、在MySQL中,通常有这几种约束
    约束类型:主键 默认值 唯一 外键 非空
    关键字: PRIMARY KEY DEFAULT UNIQUE FOREIGN KEY NOT NULL
     
    主键 (PRIMARY KEY)是用于约束表中的一行,作为这一行的唯一标识符
    默认值约束 (DEFAULT) 规定,当有 DEFAULT 约束的列,插入数据为空时,将使用默认值。
    唯一约束 (UNIQUE) 比较简单,它规定一张表中指定的一列的值必须不能有重复值,即这一列每个值都是唯一的。
    外键约束,一个表可以有多个外键,每个外键必须 REFERENCES (参考) 另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。
    非空约束 (NOT NULL),听名字就能理解,被非空约束的列,在插入值时必须非空。
     
    CREATE TABLE employee
    (
    id INT(10) PRIMARY KEY,
    name CHAE(20) DEFAULT 'Tom',
    UNIQUE (phone),
    salary INT(10) NOT NULL,
    );
     
    3、WHERE限制条件
    数学符号 (=,<,>,>=,<=)
    OR(或) 和 AND(且)和BETWEEN(包含)
    select name,age from employee where age>25 or age>30;
    IN和NOT IN
    SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt NOT IN ('dpt1','dpt3');
    通配符LIKE
    其中 _ 代表一个未指定字符,% 代表不定个未指定字符。
    SELECT name,age,phone FROM employee WHERE phone LIKE '1101__';
    SELECT name,age,phone FROM employee WHERE name LIKE 'J%';
    ORDER BY 排序
    ASC和DESC升序或降序
    SELECT name,age,salary,phone FROM employee ORDER BY salary DESC;
     
    4、SQL 内置函数和计算
    函数名: COUNT SUM AVG MAX MIN
    作用: 计数 求和 求平均值 最大值 最小值
     
    SELECT MAX(salary) AS max_salary,MIN(salary) FROM employee; 使用AS关键词可以给值重命名
     
    5、子查询
    处理多个表才能获得所需的信息。
    例如:想要知道名为 "Tom" 的员工所在部门做了几个工程。员工信息储存在 employee 表中,但工程信息储存在project 表中。
    SELECT of_dpt,COUNT(proj_name) AS count_project FROM project
    WHERE of_dpt IN (SELECT in_dpt FROM employee WHERE name='Tom');
     
    6、连接查询
    在处理多个表时,子查询只有在结果来自一个表时才有用。但如果需要显示两个表或多个表中的数据,这时就必须使用连接 (join) 操作。
    连接的基本思想是把两个或多个表当作一个新的表来操作,如下:
    SELECT id,name,people_num
    FROM employee,department
    WHERE employee.in_dpt = department.dpt_name
    ORDER BY id;
     
    SELECT id,name,people_num
    FROM employee JOIN department
    ON employee.in_dpt = department.dpt_name
    ORDER BY id;
     
    7、重命名一张表
    重命名一张表的语句有多种形式,以下 3 种格式效果是一样的:
    RENAME TABLE 原名 TO 新名字;
    ALTER TABLE 原名 RENAME 新名;
    ALTER TABLE 原名 RENAME TO 新名;
    删除一张表:
    DROP TABLE 表名字;
    增加一列:
    ALTER TABLE 表名字 ADD COLUMN 列名字 数据类型 约束;
    ALTER TABLE 表名字 ADD 列名字 数据类型 约束 AFTER 列名称; (“AFTER 列1” 表示新增的列被放置在 “列1” 的后面)
    ALTER TABLE employee ADD test INT(10) DEFAULT 11 FIRST;(放在第一列的位置,使用 FIRST)
    删除一列:
    ALTER TABLE 表名字 DROP COLUMN 列名字;(语句后面不需要有数据类型、约束或位置信息)
    或: ALTER TABLE 表名字 DROP 列名字;
    重命名一列:
    这条语句其实不只可用于重命名一列,准确地说,它是对一个列做修改(CHANGE) :
    ALTER TABLE 表名字 CHANGE 原列名 新列名 数据类型 约束;
    改变数据类型:
    要修改一列的数据类型,除了使用刚才的CHANGE语句外,还可以用这样的MODIFY语句:
    ALTER TABLE 表名字 MODIFY 列名字 新数据类型;
    修改表中某个值:
    大多数时候我们需要做修改的不会是整个数据库或整张表,而是表中的某一个或几个数据,这就需要我们用下面这条命令达到精确的修改:
    UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 条件;
    删除一行记录:
    删除表中的一行数据,也必须加上WHERE条件,否则整列的数据都会被删除。删除语句:
    DELETE FROM 表名字 WHERE 条件;
     
  • 相关阅读:
    如何学习 websocket ?
    如何使用 C++ Inja html template 模板
    使用 QSqlTableModel 模型向数据库中插入数据时,为什么使用 rowCount 函数只能返回 256 最大值?
    windows 如何配置 Go 环境(Zip archive 方式)?
    qt 如何使用 lamda 表达式接收线程中发射的数据,并在里面更新 UI ?
    如何使用 VLD 检测程序中的内存泄漏?
    Qt 在相同的线程中可以在信号中传递未注册的元对象,在非相同线程中则不能传递未测试的对象,为什么呢?
    《LeetBook》leetcode题解(5):Longest Palindromic [M]——回文串判断
    《LeetBook》leetcode题解(4): Median of Two Sorted Arrays[H]——两个有序数组中值问题
    《Algorithms算法》笔记:元素排序(4)——凸包问题
  • 原文地址:https://www.cnblogs.com/WXBai/p/8414710.html
Copyright © 2020-2023  润新知