MySql 基本操作(一)

  1. http://www.w3school.com.cn/sql/sql_isnull.asp
  2. 视图可以说是一种虚拟表,建立在基本表的基础上,通过关联一个表或者多个表来获取多个表中需要的字段,视图只是用来查询数据并不能用来存储数据信息。
  3. -- CREATE DATABASE stu;
  4. -- SHOW DATABASES;
  5. USE stu;
  6. CREATE TABLE stu(x1 VARCHAR(10) PRIMARY KEY,x2 VARCHAR(10),x3 VARCHAR(10));
  7. SHOW TABLES;
  8. DESC stu;
  9. DROP TABLE stu;
  10. CREATE TABLE stu(
  11.     Sno CHAR(10) PRIMARY KEY,
  12.     Sname CHAR(10) UNIQUE,
  13.     Ssex char(2),
  14.     Sage SMALLINT,
  15.     Sdept CHAR(20) );
  16.  
  17. INSERT INTO stu (Sno,Sname,Ssex,Sage,Sdept) VALUES(001,'张三','男',20,'CS');
  18. INSERT INTO stu VALUES(002,'李四','男',2,'CD');
  19. INSERT INTO stu VALUES(003,'翠花','女',22,'CA');
  20. SELECT * FROM stu;
  21. SELECT Sno FROM stu ;
  22. SELECT Sno,Sage FROM stu;
  23. -- 把Sno 以 sn展示出来,Sage AS sa
  24. SELECT Sno AS sn,Sage AS sa FROM stu;
  25. --修改
  26. UPDATE stu SET Sage=20 WHERE Sno=2;
  27. --消除查询结果中的重复行
  28. SELECT DISTINCT Sage FROM stu;
  29. SELECT * FROM stu WHERE Sno BETWEEN  1 AND 2;
  30. SELECT * FROM stu  LIMIT 2;
  31. SELECT * FROM stu WHERE Sage >20;
  32. SELECT * FROM stu WHERE Sage NOT in(20);
  33. SELECT * FROM stu WHERE Sage LIKE '2%';
  34. SELECT * FROM stu WHERE Sage LIKE '%2';
  35.  
  36. SELECT * FROM stu WHERE Sage is not NULL;
  37. -- 升序(ASC)或降序(DESC)排列,默认为升序。
  38. SELECT * FROM stu  ORDER BY Sno DESC;
  39. SELECT * FROM stu  ORDER BY Sno ;
  40. --  AVG         求平均值
  41. --              count        求记录个数,返回int类型整数
  42.   --            max          求最大值
  43.     --          min           求最小值
  44.       --        sum          求和
  45. SELECT AVG(Sage) as 平均数 , SUM(Sage) AS 总数
  46. FROM stu WHERE Ssex='男';
  47. SELECT Sno,SUM(Sno) AS total
  48. FROM stu  GROUP BY Sage;
  49. -- 如果想在一个已经建好的表中添加一列,可以用诸如:
  50.  alter table stu add column num INT not null;
  51. UPDATE stu SET num=20 WHERE Sno=1;
  52. UPDATE stu SET num=25 WHERE Sno=2;
  53. UPDATE stu SET num=30 WHERE Sno=3;
  54. -- 这条语句会向已有的表中加入新的一列,这一列在表的最后一列位置。如果我们希望添加在指定的一列,可以用:
  55. -- alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(20) not null after COLUMN_NAME;
  56. -- 注意,上面这个命令的意思是说添加新列到某一列后面。如果想添加到第一列的话,可以用:
  57. -- alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(20) not null first;
  58. SELECT *
  59. FROM stu
  60. WHERE num>23
  61.  GROUP BY Sage;
  62. INSERT INTO stu VALUES (4,"ss",'男',22,'CD',30);
  63. SELECT num,MAX(num)AS MAxnum,MIN(num)AS Minnum
  64. FROM stu
  65. GROUP BY Sage
  66. HAVING COUNT(*)>1
  67. ORDER BY num;
  68. DELETE FROM stu WHERE Sno=4;
  69. -- 不删除表的情况下 删除所有数据
  70. DELETE * FROM stu;
  71. alter table stu add column num1 INT(2)  DEFAULT '0';
  72. SELECT * FROM stu;
  73. ALTER TABLE stu ADD num2 INT;
  74. ALTER TABLE stu DROP COLUMN num1,DROP COLUMN num2;
  75. ALTER TABLE stu add INDEX age(Sage);
  76.  
  77. ALTER TABLE  stu CHANGE id id INT AUTO_INCREMENT;
  78. ALTER TABLE student CHANGE id id INT auto_increment
    INSERT INTO student (Id,Sname,Age,Grade) VALUES (1,'张三',22,50)
    INSERT into  student VALUES (2,'李四',23,60)
    INSERT into  student (Sname,Age,Grade) VALUES ('王二',33,70)
    INSERT into  student (Sname,Age,Grade) VALUES ('翠花',35,55)
    INSERT into student  (Sname,Age,Grade) VALUES ('王龙',32,65)

    CREATE TABLE school_timetable(
    Sname VARCHAR(10) PRIMARY key,
    Course VARCHAR(10) UNIQUE
    )

    INSERT into school_timetable VALUES ('张三','语文');
    INSERT into school_timetable VALUES ('李四','数学');
    INSERT into school_timetable VALUES ('王二','英语');
    INSERT into school_timetable VALUES ('王龙','语文1');
    INSERT into school_timetable VALUES ('翠花','数学1');


    -- 给表别名 AS可以省略
    select s.id,s.Sname,s.Age,s.Grade,ss.Course
    from student as s,school_timetable AS ss
     where s.Sname=ss.Sname

    -- 以左/右表为主  在MySql中不支持Full Jion操作
    select * from school_timetable ss
    LEFT     JOIN student s ON s.Sname=ss.Sname

    -- 只显示匹配到的  在SQL中 on 代替where
    select * from school_timetable ss
    INNER JOIN student s WHERE s.Sname=ss.Sname

    SELECT * FROM student
    where Age LIKE '%2%'

    -- 两个条件都要满足
    SELECT * FROM student
    where Age=22 and Grade=50

    -- 满足其中一个就行

    SELECT * FROM student
    where (Age=22 OR Age=31) AND Grade=50

    -- 升序 一般默认升序
    SELECT * FROM student ORDER BY id -- ASC

    -- 降序排序 以数字的  还有就是字母的排序
    SELECT * FROM student ORDER BY id DESC

    -- UPDATE 表名称 SET 列名称 =新值 WHERE 列名称 =某值
    UPDATE student SET Sname ='王三' WHERE id=3;

    -- DELETE FROM 表名称 WHERE 列名称 =值
    DELETE FROM student where id=5;

    -- 不删除表 删除所有行
    DELETE FROM company_home
    DELETE FROM company_home

    -- 范围查询 SQL 中 是 SELECT Top 范围值 FROM 表名称 WHERE 条件
    -- SQL 百分比查询 SELECT Top  范围值 percent *   FROM 表名称 WHERE 条件
    -- mysql中 SELECT 列名称 FROM 表名称 LIMIT 范围值
    -- oracle 中 SELECT 列名称 FROM 表名称 WHERE  ROWNUM 条件符号(> < = >=)范围值
    SELECT * from  student LIMIT 3

    -- 以2结尾的
    SELECT * FROM student WHERE age LIKE '%2'

    -- 以2 开头的
    SELECT * FROM student WHERE age LIKE '2%'

    -- 所有包含2的
    SELECT * FROM student WHERE age LIKE '%2%'
    -- 不包含的
    SELECT * FROM student WHERE age not LIKE '%2'

    -- _代表一个同配字符
    SELECT * FROM student WHERE age LIKE '_2'

    SELECT * FROM student WHERE Sname LIKE '王_'

    -- SQL查询 表中 以A或L或N 开头的  '[!ALN]%' 不是 以A或L或N 开头的开头的
    -- SELECT * FROM student WHERE age LIKE '[ALN]%'

    -- IN
    SELECT * FROM student WHERE  Age IN (22,32)

    -- SQL中 BETWEEN X AND y 包括X 包括Y
    -- MySql中 BETWEEN X AND y 包括X 不包括Y
    SELECT * from  student where id BETWEEN 2 and 4

    -- 不包含在 BETWEEN X AND y 包括X 不包括Y
    SELECT * from  student where id NOT BETWEEN 2 and 4

    --  对表
    SELECT * FROM student AS stuu

    -- 对列
    SELECT Sname as nam FROM student

发布了15 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_40938267/article/details/89846472