MySql Basic-day01

MySql Basic

1.SQL概念

SQL 作⽤:

  1. 是⼀种所有关系型数据库的查询规范,不同的数据库都⽀持。
  2. 通⽤的数据库操作语⾔,可以⽤在不同的数据库中。
  3. 不同的数据库 SQL 语句有⼀些区别 – 称为“⽅⾔”。

SQL 语句分类:

  1. Data Definition Language (DDL 数据定义语⾔), 如:建库,建表
  2. Data Manipulation Language(DML 数据操纵语⾔),如:对表中的记录操作增删改
  3. Data Query Language(DQL 数据查询语⾔),如:对表中的查询操作
  4. Data Control Language(DCL 数据控制语⾔),如:对⽤户权限的设置

MySQL 的语法:

  1. 每条语句以分号结尾。
  2. SQL 中不区分⼤⼩写,关键字中认为⼤写和⼩写是⼀样的
  3. 三种注释
    MySql Basic-day01

2.DDL操作数据库

  • 创建数据库
CREATE DATABASE 数据库名;
  • 判断数据库是否已经存在,不存在则创建数据库
CREATE DATABASE IF NOT EXISTS 数据库名;
  • 创建数据库并指定字符集
CREATE DATABASE 数据库名 CHARACTER SET 字符集;
  • 查看数据库
show databases;
  • 查看某个数据库的定义信息
show create database db3;
  • 修改数据库默认的字符集
ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;
  • 删除数据库的语法
DROP DATABASE 数据库名;
  • 使⽤/切换数据库
USE 数据库名;
  • ⾯试题
    在 MySQL 数据库软件中,有test1、test2、test3三个数据库,登录数据库之后,输⼊语句:select database test2; 运⾏结果是什么?
    这是⼀条错误的语句,如果要选中⼀个数据库,应⽤使⽤:use test2;

3.DDL操作表结构

  • 创建表的格式
CREATE TABLE 表名 (
字段名 1 字段类型 1,
字段名 2 字段类型 2
);
  • 关键字说明
    MySql Basic-day01
  • 常使⽤的数据类型如下
    MySql Basic-day01
  • 详细的数据类型如下
    MySql Basic-day01
  • 查看某个数据库中的所有表
SHOW TABLES;
  • 查看表结构
DESC 表名;
  • 查看创建表的SQL语句
SHOW CREATE TABLE 表名;
  • 快速创建⼀个表结构相同的表
CREATE TABLE 新表名 LIKE 旧表名;
  • 直接删除表
DROP TABLE 表名;
  • 判断表是否存在,如果存在则删除表
DROP TABLE IF EXISTS 表名;
  • 添加表列 ADD
ALTER TABLE 表名 ADD 列名 类型;
  • 修改列类型 MODIFY
ALTER TABLE 表名 MODIFY 列名 新的类型;
  • 修改列名 CHANGE
ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
  • 删除列 DROP
ALTER TABLE 表名 DROP 列名;
  • 修改表名
RENAME TABLE 表名 TO 新表名;
  • 修改字符集 character set
ALTER TABLE 表名 character set 字符集;

4.DML操作表结构

进行增删改操作

插⼊全部字段

-- 所有的字段名都写出来
INSERT INTO 表名 (字段名 1, 字段名 2, 字段名 3...) VALUES (值 1, 值 2, 值 3);
-- 不写字段名
INSERT INTO 表名 VALUES (值 1, 值 2, 值 3...);
  • 插⼊部分数据
INSERT INTO 表名 (字段名 1, 字段名 2, ...) VALUES (值 1, 值 2, ...);
  • 将表名2中的所有的列复制到表名1中
INSERT INTO 表名 1 SELECT * FROM 表名 2;
  • 只复制部分列
INSERT INTO 表名 1(列 1, 列 2) SELECT 列 1, 列 2 FROM student;
  • 不带条件修改数据
UPDATE 表名 SET 字段名=值; -- 修改所有的⾏
  • 带条件修改数据
UPDATE 表名 SET 字段名=值 WHERE 字段名=值;
  • 不带条件删除数据
DELETE FROM 表名;
  • 带条件删除数据
DELETE FROM 表名 WHERE 字段名=值;
  • 使⽤ truncate 删除表中所有记录
TRUNCATE TABLE 表名;
  • truncate 和 delete 的区别
    truncate 相当于删除表的结构,再创建⼀张表。

5.DQL操作表结构

  • 查询表所有⾏和列的数据
-- 使⽤*表示所有列
SELECT * FROM 表名;
-- 查询所有的学⽣
select * from student;
  • 查询指定列
-- 查询指定列的数据, 多个列之间以逗号分隔
SELECT 字段名 1, 字段名 2, 字段名 3, ... FROM 表名;
-- 查询 student 表中的 name 和 age 列
select name,age from student;
  • 使⽤关键字
    使⽤别名的好处:显示的时候使⽤新的名字,并不修改表的结构。
-- 对列指定别名
SELECT 字段名 1 AS 别名, 字段名 2 AS 别名... FROM 表名;
-- 对列和表同时指定别名
SELECT 字段名 1 AS 别名, 字段名 2 AS 别名... FROM 表名 AS 表别名;
-- 使⽤别名
select name as 姓名, age as 年龄 from student;
-- 表使⽤别名
select st.name as 姓名, age as 年龄 from student as st;
  • 查询指定列并且结果不出现重复数据
SELECT DISTINCT 字段名 FROM 表名;
  • 某列数据和固定值运算
SELECT 列名 1 + 固定值 FROM 表名;
SELECT 列名 1 + 列名 2 FROM 表名;
  • 为什么要条件查询
    如果没有查询条件,则每次查询所有的⾏。实际应⽤中,⼀般要指定查询的条件,对记录进
    ⾏过滤。
SELECT 字段名 FROM 表名 WHERE 条件;
  • 运算符
    MySql Basic-day01
  • 逻辑运算符
    MySql Basic-day01

6.练习

见我的上传文件

上一篇:【C++ STL学习之路】---------string


下一篇:Android_Basic_01.关于单例对象的使用