zoukankan      html  css  js  c++  java
  • mysql数据库的基本操作

    1.存储结构:数据库database     表table  数据data;

    2.SQLStructured Query Language,结构化查询语言)语言:和数据库交互的语言,进行数据库管理的语言。

    库的操作

    3.查询所有数据库:show databases;

    4.创建数据库 create database 库名 character set 字符集(utf8或gbk)

    5.查看创建的数据库:show create database 库名;

    6.删除数据库:drop database 库名;

    7.修改数据库:alter database 库名 character set 字符集(utf8或gbk);

    表的操作

    1.选择数据库:use 库名;(建表前必须的一步);

    2.查看库内的所有表:show tables;

    3.创建表:

    CREATE TABLE xiugai(
     sid INT,   //字段名,字段类型
     sname VARCHAR(10)
     )

    4.查看表结构:desc 表名;

    5.删除表:drop table 表名;

    6.表的操作:

    添加字段及字段类型:alter table 表名 add column 字段名称 字段类型(长度);

    删除表的字段:alter table 表名 drop column 字段名称;

    修改字段类型:alter table 表名 modify column 字段名 字段类型;

    修改表的名称:alter table 表名 rename to 表名;

    数据的操作

    1.增加数据:insert into 表名 values();//括号内,按照全表的字段名和字段类型填入,并用逗号隔开;

     插入部分字段: INSERT INTO student(id,NAME) VALUES(2,'李四');

    注:

    字符串类型和日期类型:需要加引号 (’ ')

     

    如CHAR、VARCHAR、TEXT、DATE、DATETIME、TIMESTAMP、YEAR、TIME等数据类型的数据需要加引号

     

    整数和浮点型的:不需要加

     

    如TINYINT、SMALLINT、MEDIUMINT、INT、FLOAT、DOUBLE、DECIMAL等

     

    2.修改数据:UPDATE 表名 SET gender='',age=30 WHERE id=2;(where为有条件)

    3.删除数据:带条件的数据delete from 表名 where id=2;(删除id为2的整条数据)(不带条件时,进行全表删除);此时删除表的数据,但不能删除表的约束(非空、唯一、自增),可以进行数据的回滚

    4.删除数据2:truncate table 表名:可以进行全表删除,同时删除表的约束;,此时不能进行数据的回滚。     

    5.查询所有列:select * from student;

    6.查询指定列:select 字段名 from 表名;

    7.查询时添加常量列:select 表字段名AS'新常量名' from 表名;

    8.查询时合并列:select (字段名+字段名)as'总成绩'from 表名;

    9.查询时去重:select distinct (字段名) from 表名;

    10.条件查询:

     

    1  查询id为2,且姓名为李四的学生
    2 SELECT * FROM student WHERE id=2 AND NAME='李四'; -- 交集

     

    1  查询id为2,或姓名为张三的学生
    2 SELECT * FROM student WHERE id=2 OR NAME='张三'; -- 并集
    1  比较条件: >   <   >=  <=  =  <>(不等于) between and (等价于>= 且 <=)
    2 -- 需求: 查询servlet成绩大于70分的学生
    3 SELECT * FROM student WHERE servlet>70;
    1  查询jsp成绩大于等于75,且小于等于90分的学生
    2 SELECT * FROM student WHERE jsp>=75 AND jsp<=90;
    1 SELECT * FROM student WHERE jsp BETWEEN 75 AND 90; -- (包前包后)
    1 判断null
    2 SELECT * FROM student WHERE address IS NULL ;--判空条件
    1 SELECT * FROM student WHERE address='';---判空字符串
    1 模糊条件: like
    2 -- 通常使用以下替换标记:
    3 -- % : 表示任意个字符
    4 -- _ : 表示一个字符
    5 -- 需求: 询姓‘张’的学生
    6 SELECT * FROM student WHERE NAME LIKE '张%';
    7 
    8 -- 需求: 查询姓‘李’,且姓名只有两个字的学生
    9 SELECT * FROM student WHERE NAME LIKE '李_';
     1 聚合查询(使用聚合函数的查询)
     2  -- 常用的聚合函数: sum()  avg()  max()  min()  count()
     3 -- 需求:查询学生的servlet的总成绩 (sum() :求和函数)
     4 SELECT SUM(servlet) AS 'servlet的总成绩' FROM student;
     5 
     6 -- 需求: 查询学生的servlet的平均分
     7 SELECT AVG(servlet) AS 'servlet的平均分' FROM student;
     8 
     9 -- 需求: 查询当前servlet最高分
    10 SELECT MAX(servlet) AS '最高分' FROM student;
    11 
    12 -- 需求: 查询最低分
    13 SELECT MIN(servlet) AS '最低分' FROM student;
    14 
    15 -- 需求: 统计当前有多少学生(count(字段))
    16 SELECT COUNT(*) FROM student;

    11.分页查询:select * from 表名 limit (当前页-1)*每页显示的条数,每页显示的条数;

     

     12.查询排序:select * from 表名 order by 字段名 asc(默认正序,可不添加); desc(倒叙,由大到小)

    13.多个字段排序,

    SELECT * FROM student ORDER BY servlet ASC,jsp DESC;(前者为主排序,后者为次排序)

    14.分组查询:

    SELECT gender,COUNT(*) FROM student GROUP BY gender HAVING COUNT(*)>2;(必须先执行分组后,才能使用having筛选),在分组前可进行条件查询

    注:

    1.float(8, 2)的8代表小数点前8位,2代表小数点后2位,这仅仅是存储时的格式
    2.小数点的保留最好在selete查询中显示
    selete format(字段名,2)from 表名
    3.decimal(10,2)中的“2”表示小数部分的位数,如果插入的值未指定小数部分或者小数部分不足两位则会自动补到2位小数,若插入的值小数部分超过了2为则会发生截断,截取前2位小数。,其中10为总长度。
    CREATE TABLE emp(
    id INT PRIMARY KEY,,---自己的主键
    empName VARCHAR(20),
    deptid INT,----设置外键
    -- 声明一个外键约束 constraint约束
    CONSTRAINT emp_fk FOREIGN k`dept`ey(deptid) REFERENCES dept(id)
    )
  • 相关阅读:
    《显示器件应用分析精粹》构思
    《三极管应用分析精粹》已经交稿
    leetcode
    mskitten
    如果IBM再给我一次实习机会
    “完美工作”是什么样子
    一起四十岁退休吧……
    未来公司的酒会
    热泪盈眶的五十岁 | James Altucher
    一个程序员的辞呈
  • 原文地址:https://www.cnblogs.com/mlf19920916/p/12053621.html
Copyright © 2011-2022 走看看