• SQL使用


    MySQL 连接

    首先以管理员模式打开cmd,进入MySQL的安装目录E:\MySQL\Mysql\bin

    • 注册MySQL服务
    mysqld -install
    
    • 在安装目录下启动MySQL
    net start mysql
    
    • 通过用户密码进入数据库
    mysql -u root -p
    

    MySQL数据库操作

    • 创建数据库
    create database 库名;
    create database if not exists 库名;
    
    • 删除数据库
    drop database 库名;
    drop database if exists 库名;
    
    • 展示所有数据库
    show databases;
    
    • 切换使用数据库
    use 库名;
    
    • 查看当前使用的数据库
    select database();
    

    MySQL数据类型

    MySQL数据表操作

    • 建表
    create table 表名(
       字段名 类型(长度) 约束,//逗号
       字段名 类型(长度) 约束//结尾不用逗号
    );//分号
    

    例:

    create table student(
    	id int,
    	name varchar(10),
    	gender char(1),
    	birthday date,
    	score double(5,2),//double(总长度,小数点后保留的位数)
    	email varchar(64),
    	tle varchar(15),
    	status tinyint
    );
    
    create table booklibrary(
           id int,
           title varchar(100),
           author varchar(40)
    );
    
    • 删除表
    drop table 表名;
    
    • 查看数据库中的表
    show tables;
    
    • 查看表结构
    desc 表名;
    
    • 查看建表语句
    show create table 表名;
    

    数据表内容操作

    插入数据:

    INSERT INTO 表名(列名1,列名2 ...)VALUES(列值1,列值2...);
    
      • 列名与与列值的类型、个数、顺序要一一对应
      • 如果插入空值,请使用null
      • 插入的日期和字符一样,都使用引号括起来
        例:
    • 单个所有列:

    INSERT INTO booklibrary(id,title,author)
    VALUES
    (1,"学习 PHP","未知"),
    (2,"JAVA 教程","未知"),
    (3,"未来世界","未知");
    
    • 多个所有列:
    INSERT INTO booklibrary VALUES
    (4,"学习 PHP","未知"),
    (5,"JAVA 教程","未知"),
    (6,"未来世界","未知");
    
    • 指定列:
    INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);
    

    读取数据

    • 读取查看数据表所有内容
    select * from 表名;
    
    • 读取查看数据表指定列
    select 一系列名 from 表名;
    select * from stu where age>20;
    selct * from stu where age>=20 and age<=30;
    = select * from stu where age between 20 and 30;
    select * from stu where hire_date between '1998-09-01' and '1999-09-01';
    select * from stu where age != 18;  - '<>'也是不等于
    或者  || = or 
    in (18,20,22)
    select * from stu where age in (18,20,22)
    null值不能用等于来比较。需要用is
    select * from stu where age is not null;
    通配符 : _ 表示单个任意字符 % 表示任意个字符
    select * from stu where name like '马%';
    select * from stu where name like '_花%';
    

    修改数据

    UPDATE 表名 SET 列名1=列值1,列名2=列值2... WHERE 列名=值
    update stu set sex = '女' where name = '张三';
    update stu set birthday = '1999-12-12', score = 99.99 where name = '张三';
    

    删除数据

    delete from 表名 where 条件 //删除语句 
    delete from stu where name = "张三"
    delete from 表名;
    

    排序

    排序方式:
    ASC 升序排列 默认值
    DESC 降序排列
    select * from stu order by age asc;
    select * from stu order by math desc, englisg asc; //数学成绩一样,英语成绩按照升序排列
    

    Mysql的约束

    分类:

    约束是作用于表中列上的规则,用于限制加入表的数据。约束的存在保证了数据库中数据的正确性、有效性和完整性。

    • 非空约束:关键字是 NOT NULL。保证列中所有的数据不能有null值。
    • 唯一约束:关键字是 UNIQUE。保证列中所有数据各不相同。
    • 主键约束: 关键字是 PRIMARY KEY。主键是一行数据的唯一标识,要求非空且唯一。
    • 检查约束: 关键字是 CHECK。保证列中的值满足某一条件。MySQL不支持检查约束。
    • 外键约束: 关键字是 FOREIGN KEY。外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性。

    非空约束

    CREATE TABLE 表名(
    列名 数据类型 NOT NULL,
    …
    );
    
    ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL;
    
     ALTER TABLE 表名 MODIFY 字段名 数据类型;
    

    唯一约束

    CREATE TABLE 表名(
    列名 数据类型 UNIQUE [AUTO_INCREMENT],
    -- AUTO_INCREMENT: 当不指定值时自动增长
    …
    );
    
    ALTER TABLE 表名 MODIFY 字段名 数据类型 UNIQUE;
    
    ALTER TABLE 表名 DROP INDEX 字段名;
    

    主键约束

    CREATE TABLE 表名(
    列名 数据类型,
    [CONSTRAINT] [约束名称] PRIMARY KEY(列名)
    );
    
    ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
    
    ALTER TABLE 表名 DROP PRIMARY KEY;
    

    实例:

    -- 员工表
    CREATE TABLE emp (
    id INT PRIMARY KEY, -- 员工id,主键且自增长
    ename VARCHAR(50) NOT NULL UNIQUE, -- 员工姓名,非空并且唯一
    joindate DATE NOT NULL , -- 入职日期,非空
    salary DOUBLE(7,2) NOT NULL , -- 工资,非空
    bonus DOUBLE(7,2) DEFAULT 0 -- 奖金,如果没有奖金默认为0
    );
    

    外键约束

    CREATE TABLE 表名(
    列名 数据类型,
    
    [CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名)
    );
    
    ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
    
    ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
    
  • 相关阅读:
    JS中的宽高(基础知识很重要)
    JS基础知识总结
    Spring中的JdbcTemplate使用
    Spring中集合类型属性注入
    白盒交换机公司&产品列表
    虚拟化有哪几种架构
    全虚拟化与半虚拟化
    白牌交换机现状分析zz
    SDN控制器列表
    Arista公司
  • 原文地址:https://www.cnblogs.com/960223447a/p/15771003.html
Copyright © 2020-2023  润新知