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 '%才%'
  • 相关阅读:
    如何动态加载控件以及插件编程思想(C#)
    Web Services的魅力
    Remoting和Webservice的区别
    用Asp.Net c#写的采集小例子
    .net remoting范例
    C# 实现屏幕键盘 (ScreenKeyboard)
    初识用.NET Remoting来开发分布式应用(转)
    把页面以流的形式输出 在另外一个页面显示
    webservice的应用
    【表单】鼠标经过时获得焦点,获得焦点时选中文本
  • 原文地址:https://www.cnblogs.com/HHR-SUN/p/7043516.html
Copyright © 2011-2022 走看看