zoukankan      html  css  js  c++  java
  • Mysql(一)

    初识MySql - 风一样的少年 - 风一样的少年
     
    1、创建数据库和用户
    -- 修改密码   ctrl+shift+c/r  添加/取消  注释
    SET PASSWORD  FOR root@localhost=PASSWORD('新密码');
    -- 查询所有的数据库
    SHOW DATABASES ;
    -- 创建数据库
    CREATE DATABASE IF NOT EXISTS  t11;
    --  删除数据库
    DROP DATABASE t11;
    --  切换到指定的数据库
    USE mysql;
    -- 查询mysql数据库中user表中所有用户
    SELECT `host`,`user` FROM mysql.user
    --  `反引号`  区别关键字
    -- 创建用户
    CREATE USER bdqn IDENTIFIED BY 'bdqn';
    --  给用户授权
    GRANT ALL ON *.* TO bdqn;
    -- 删除用户
    DELETE FROM mysql.user WHERE USER='bdqn'
     
    3、创建修改表
    --  创建一个学生信息表
    CREATE TABLE  student(
    stuNo INT(4)  NOT NULL PRIMARY KEY,
    stuName VARCHAR(20) NOT NULL,
    stuAge  INT(3)  -- 不能加 ,
    )
    -- 修改表名
    ALTER TABLE student RENAME  AS stu;
    -- 给表中新增字段
    ALTER TABLE stu ADD stuSex VARCHAR(2);
    -- 修改表中字段的类型
    ALTER TABLE stu MODIFY stuName VARCHAR(10);
    -- 删除表中指定的字段
    ALTER TABLE  stu DROP stuSex;
    -- 修改字段的名称
    ALTER TABLE  stu CHANGE stuName `name` VARCHAR(10);
    4、删除表
    --  删除表
    DROP TABLE  IF EXISTS student;
    -- 01.新增一条数据
    INSERT INTO student(stuNo,`name`,stuAge)
    VALUES(1,'张三',50);
    -- 02.新增一条数据     必须按照创建表时  字段的顺序依次赋值
    INSERT INTO student
    VALUES(2,'李四',50)
    -- 03.新增一条数据  stuNo不是自增 默认stuNo=0 如果设置了自增 可以不显示的给stuNo赋值
    INSERT INTO student(`name`,stuAge)
    VALUES('王五',50);
    -- 04.删除表中所有数据
    DELETE  FROM student;
    -- 05.同时新增多条数据
    INSERT INTO  student
    VALUES(1,'张三',50),(2,'李四',50),(3,'王五',50);
    5、数据库的备份与恢复
    初识MySql - 风一样的少年 - 风一样的少年
    初识MySql - 风一样的少年 - 风一样的少年
     
    6、四种完整性约束和六大约束
     -- 四种完整性约束
    -- 01.实体完整性   唯一约束,主键约束
    -- 指的就是一条记录!保证每一条记录都是唯一的,有意义的!
    -- 02.域完整性     检查约束,外键约束
    -- 域在这里指的是字段!保证字段的值必须是有效的!
    -- 03.引用完整性   外键约束
    -- 一个表中的字段值来自另一个表中的字段值!
    -- 引用的表就是外键表/从表
    -- 被引用的表就是主表
    -- 04.自定义完整性 检查约束

    -- 6大约束
    -- 01.主键约束    pk  primary key
    -- 02.唯一约束    uq  unique
    ALTER TABLE student
    ADD  CONSTRAINT uq_student_name UNIQUE(NAME)
    -- 03.外键约束    fk  foreign key
    ALTER TABLE  student
    ADD tid INT(4);  -- 在student表中新增字段
    CREATE TABLE teacher( -- 创建teacher表
    tId INT(4) NOT NULL PRIMARY KEY,
    tName VARCHAR(20)
    );
    INSERT INTO teacher  -- 给teacher表新增数据
    VALUES(1000,'教师1'),(1001,'教师2'),(1002,'教师3'),(1003,'教师4');
    ALTER TABLE  student  -- 在从表中创建外键关系
    ADD CONSTRAINT fk_teacher
    FOREIGN KEY(tid)
    REFERENCES teacher(tId)
    -- 04.默认值约束  df  default
    -- 05.检查约束    ck  check
    -- 06.非空约束    nn  not null
    7、修改和删除表中的数据
    --   修改表中的数据
    -- update  表名  set  需要修改的数据  where  条件
    -- 01.修改stuNo=5的姓名为 ‘小黑’
    UPDATE student  SET `name`='小黑'
    WHERE stuNo=5;
    -- 02.修改所有tid=1001 改成 1003
    UPDATE student SET tid=1003
    WHERE tid=1001
    -- 删除表中的数据
    -- delete from  表名  where  条件
    --  删除stuAge在20 到100之间的数据
    DELETE FROM student
    WHERE
    stuAge>=20 AND stuAge<=100;
     
    DELETE FROM student
    WHERE
    stuAge BETWEEN 200 AND 500;
     
    -- 删除teacher表中所有的数据
    DELETE  FROM teacher;
    8、基本的查询语句
    --  DQL(data  query language)数据查询语言
    -- 01.查询所有的学生信息
    SELECT * FROM student;
    -- 02.查询指定的学生信息
    SELECT * FROM student WHERE studentName='大凡';
    -- 03.查询编号是1009的学生编号,姓名以及住址
    SELECT  studentNo,studentName,address FROM student
    WHERE studentNo=1009;
    -- 04.查询的时候使用别名 as 也可以省略
    SELECT  studentNo AS 编号,studentName AS 姓名,
    address AS 住址 FROM student
    WHERE studentNo=1009;
     
    SELECT  studentNo  编号,studentName  姓名,
    address  住址 FROM student
    WHERE studentNo=1009;
     
    -- 05.查询student和grade两个表中的数据
    SELECT * FROM student,grade;
    -- 上面的结果是一个 笛卡尔积! 两个表中数据的乘积!
    SELECT * FROM student,grade
    WHERE student.gradeid=grade.gradeid
     
    -- 06.去重  distinct 查询多列时,必须位于第一个
    -- 查询学生成绩在85到95之间的学生编号
    SELECT  DISTINCT studentNo,studentResult
    FROM  result
    WHERE studentResult BETWEEN 85 AND 95;
     

    -- 07.查询学生成绩在85到95之间的学生姓名
    SELECT studentName FROM student
    WHERE  studentNo IN
    (SELECT DISTINCT studentNo FROM result
    WHERE studentResult BETWEEN 85 AND 95);
     
    --  验证我们的输出是正确的
    UPDATE result SET studentResult=80
    WHERE studentNo=1000;
     
    -- 08.查询学生表中 地址不为空的学生姓名和地址
    SELECT studentName,address
    FROM student
    WHERE address!='';
     
    -- 09.查询学生表中地址为空的学生姓名和地址
    --  null 代表无值 区别于 ‘’空字符串
     
    SELECT studentName,address
    FROM student
    WHERE address='';
     
    SELECT studentName,address
    FROM student
    WHERE address IS NULL;
     
    SELECT studentName,address
    FROM student
    WHERE address IS NOT NULL;
     
    --  10.查询姓名是 李东方或者刘奋斗的 学生信息
    SELECT * FROM student
    WHERE studentName='李东方' OR studentName='刘奋斗'
    --  11.查询姓名是 李东方或者刘奋斗 再或者是json 的 学生信息
    SELECT * FROM student
    WHERE
    studentName='李东方' OR studentName='刘奋斗'
    OR studentName='json';
     
    -- 12.使用in 代替
     
    SELECT * FROM student
    WHERE  studentName IN
    ('李东方','json','刘奋斗');
     
    -- 13.查询姓李的学生信息 _ 代表一个字符  %代表0或者多个字符
    SELECT * FROM student
    WHERE  studentName LIKE '李_'
     
    SELECT * FROM student
    WHERE  studentName LIKE '李%'
     
    SELECT * FROM student
    WHERE  studentName LIKE '%才'
     
    SELECT * FROM student
    WHERE  studentName LIKE '%才%'
  • 相关阅读:
    读书笔记之理想设计的特征
    一些javascript 变量声明的 疑惑
    LINQ 使用方法
    Google MySQL tool releases
    读书笔记之设计的层次
    EF之数据库连接问题The specified named connection is either not found in the configuration, not intended to be used with the Ent
    转载 什么是闭包
    javascript面向对象起步
    Tips
    数据结构在游戏中的应用
  • 原文地址:https://www.cnblogs.com/HHR-SUN/p/7043516.html
Copyright © 2011-2022 走看看