姥姥家的程序员带你走进数据库的入门

此篇博客献给想入门计算机数据库的小白,如果那里写错,请留言或者私信,愿与大家一起成长。

什么是数据库(数据库的概念,DB:DataBase)

  1. 数据库概念: 数据库就是存储数据的仓库,本质上讲,数据库就是一种文件系统。
  2. 数据库管理系统概念: 管理数据库文件

MySQL数据库的安装

  1. 数据库安装包以及SQLyog下载网盘链接:
    链接:https://pan.baidu.com/s/1L8JUYIGvKvpL3zPXs8reMw
    提取码:a2p1
  2. 安装步骤:
    mysql数据库入门(没学会,算我输)-姥姥家的程序员

mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
mysql数据库入门(没学会,算我输)-姥姥家的程序员
4. 数据库操作工具SQLyog的下载使用: 在文章开头提供的百度网盘链接里面有SQLyog的压缩包,解压后直接使用即可。
5. SQL语句的分类:
(1)数据定义语言(DDL): 主要是用来操作数据库中的对象,例如数据库,表,字段。
(2)数据操作语言(DML): 主要用来操作表中的数据,对数据进行增删改。
(3)数据查询语言(DQL ): 主要用来操作表中的数据,对数据进行各种过滤查询。
(4)数据库控制语言(DCL): 主要定义数据库的访问权限和安全级别,及创建用户等。
6. SQL语句的语法和数据类型:
(1)以分号结尾。例如 select * from users;
(2)不区分大小写,但是关键字建议大写。例如 SELECT * FROM users;
(3)注释 /* */、 #、–空格
(4)数据类型(常用):1.整形(int)2.小数(double)3.字符创(varchar(字符串的长度)) 4.时间(data 只显示年月日)

数据库定义语言(DDL)

一、DDL之操作数据库

  1. 增: 创建一个数据库。关键字(create)
    (1)语法:
    create database 数据库名字; ------使用默认编码格式创建数据库
    create database 数据库名字 charset 编码名字;------使用特定的编码格式创建数据库
    (2)示例:
    CREATE DATABASE users;
    CREATE DATABASE users CHARSET gbk;
  2. 删: 删除一个已经“存在”的数据库。关键字(drop)
    (1)语法:
    drop database 数据库名;
    (2)示例:
    DROP DATABASE users;
  3. 改: 更改数据库。一般不做更改,因为数据库一旦更改,与之匹配的程序内部结构也需要作出很多更改。但是可以更改正在使用的数据库。
    (1)语法:
    use 数据库名;
    (2)示例:
    use users;
  4. 查: 查看数据库。
    (1)语法:
    查看全部数据库:SHOW DATABASES;
    查看某一个数据库的详细信息:SHOW CREATE DATABASE 数据库名;
    (2)示例:
    查看某一个数据库的详细信息:SHOW CREATE DATABASE users ;
    查看当前正在使用的数据库:SELECT DATABASE();

二、DDL之操作表(下面操作中的[],代表可选配置)

  1. 增: 创建一张表。
    (1)语法:
    create table 表名(
    字段名1 数据类型(长度) [约束],
    字段名2 数据类型(长度),
    字段名3 数据类型(长度)
    );
    约束:PRIMARY KEY 主键约束,要求该列的值 唯一且不为空
    (2)示例:
    CREATE TABLE users(
    uid INT PRIMARY KEY,
    uname VARCHAR(20),
    uage INT
    );
  2. 删除: 删除已经存在的表
    (1)语法:
    drop table 表名;
    (2)示例:
    DROP TABLE users;
  3. 改: 修改某张表
    (1)语法:
    修改名字:rename table 旧表名 to 新表名;
    (2)示例:
    RENAME TABLE users TO roles;
  4. 查: 查看表
    (1)语法:
    查看所有表:show tables;
    查看某一张表的信息:desc 表名;
    (2)示例:
    查看某一张表的信息:desc roles;

三、DDL之操作字段

  1. 增: 向表中添加一列。
    (1)语法:
    alter table 表名 add 列名 数据类型(长度) [约束];
    (2)示例:
    ALTER TABLE userss ADD phone VARCHAR(20);
  2. 删: 从表中删除一列。
    (1)语法:
    alter table 表名 drop 列名;
    (2)示例:
    ALTER TABLE userss DROP phone;
  3. 改: 修改表中的某一列。
    (1)语法:
    修改列名:alter table 表名 change 旧列名 新列名 类型(长度) 约束;
    修改数据类型和约束:alter table 表名 modify 列名 类型(长度) 约束;
    (2)示例:
    修改列名:ALTER TABLE userss CHANGE uname username VARCHAR(20);
    修改列的数据类型和约束:ALTER TABLE userss MODIFY username VARCHAR(40);
  4. 查: 查看所有列(就是查看表的信息)
    (1)语法:
    desc 表名;
    (2)示例:
    desc roles;
  5. 其他: 修改编码
    (1)语法:
    alter table 表名 character set 字符集;(一般不修改)
    (2)示例:
    ALTER TABLE userss CHARSET gbk;

数据操作语言(DML):对数据进行操作。

  1. 增: 向表中添加一条记录
    (1)语法:
    insert into 表名 (字段1,字段2…) values (值1,值2…);
    insert into 表名 VALUES (值1,值2…);
    (2)注意:
    字段名和值 顺序和数据类型要一一对应。
    在值中,除了整数可以直接写,其他的必须用" "或者’ ‘引起来。建议是’ '。
    语法中的第二种写法,插入数据库中的值要是全部字段的值切值得类型必须匹配。
    (2)示例:
    创建一张商品分类表:
    CREATE TABLE category(
    cid INT PRIMARY KEY AUTO_INCREMENT,-- id 唯一不能为空,自动增长
    cname VARCHAR(20)
    );
    向表中添加一条记录
    INSERT INTO category (cid,cname) VALUES (1,‘服装类’);
    INSERT INTO category VALUES (2,‘烟酒类’);
    INSERT INTO category VALUES (NULL,‘饮料类’);
    注:因为使用了AUTO_INCREMENT的约束,所以可以给该字段插入null值,插入进去的数据会自动增加。
  2. 删: 从表中删除一条记录
    (1)语法:
    delete from 表名;------清空表,但是不清空自动增长的数值
    truncate table 表名;------摧毁并重新创建,不仅会清空数据,而且也是重置自动增长值
    delete from 表名 where条件------条件删除
    (2)示例:
    删除数据
    DELETE FROM category;
    摧毁表并重新创建
    TRUNCATE TABLE category;
    条件删除
    DELETE FROM category WHERE cid = 3;
  3. 改: 修改表中的某一条记录
    (1)语法:
    update 表名 set 字段名1=值1,字段名2=值2;
    update 表名 set 字段名1=值1,字段名2=值2 where 条件;
    (2)示例:
    修改表的记录(将category表中的字段为cname的内容全部替换为"饮料类")
    UPDATE category SET cname=‘饮料类’;
    修改表的记录带有条件(将category表中的字段为cname并且cid为2的全部替换为"玩具类")
    UPDATE category SET cname=‘玩具类’ WHERE cid = ‘2’;

数据查询语言(DQL)

一、简单查询

  1. 查询关键字: select from where
  2. 查询格式: select [distinct] *|字段1 [as] 别名1,字段2 [as] 别名2 from 表 where条件;
    中括号表示 该关键字可以省略
  3. 示例:
    (1)查询所有字段
    SELECT * FROM category;
    (2)查询某几个或者一个字段
    SELECT cid,cname FROM category;
    SELECT cname FROM category;
    (3)查询去掉重复值
    SELECT DISTINCT price FROM product;
    (4)查询结果是表达式(运算查询):将所有商品的价格+10元进行显示
    SELECT pname,price*1.2 FROM product;
    (5)别名查询.使用的关键字是as(as可以省略的)
    SELECT pname 商品名字,price+10 打折价格 FROM product;

二、条件查询

  1. 常用的查询条件:
    (1)比较元算符:
    > < >= <= = != <>
    between 数值 and 数值(包括两个数值在内)
    in(100,200,300) (表示查询的值在"in"里面)
    like ‘_冬%’ 查询第二个是冬的(’_‘表示1个位置,’%'表示n个位置)
    is null 以及 is not null
    (2)逻辑运算符:
    and or not
  2. 条件查询练习:
    (1)查询商品名称为“花花公子”的商品所有信息:
    SELECT * FROM product WHERE pname=‘花花公子’;
    (2)查询价格为800商品
    SELECT * FROM product WHERE price=800;
    (3)查询价格不是800的所有商品
    SELECT * FROM product WHERE price <> 800;
    SELECT * FROM product WHERE NOT (price=800);
    SELECT * FROM product WHERE price !=800;
    SELECT * FROM product WHERE price NOT IN (800);
    (4)查询商品价格大于60元的所有商品信息
    SELECT * FROM product WHERE price > 60;
    SELECT * FROM product WHERE NOT (price <= 60);
    (5)查询商品价格在200到1000之间所有商品
    SELECT * FROM product WHERE price BETWEEN 200 AND 1000;
    SELECT * FROM product WHERE price >=200 AND price <=1000;
    (6)查询商品价格是200或800的所有商品
    SELECT * FROM product WHERE price IN (200,800);
    SELECT * FROM product WHERE price = 200 OR price = 800;
    (7)查询含有’霸’字的所有商品
    SELECT * FROM product WHERE pname LIKE ‘%霸%’;
    (8)查询以’香’开头的所有商品
    SELECT * FROM product WHERE pname LIKE ‘香%’;
    (9)查询第二个字为’想’的所有商品
    SELECT * FROM product WHERE pname LIKE ‘_想%’;
    (10)查询没有分类的商品
    SELECT * FROM product WHERE category_id IS NULL;
    (11)查询有分类的商品
    SELECT * FROM product WHERE category_id IS NOT NULL;
    (12)查询所有价格大于2000的电脑商品(catetory_id是c001)或者价格大于2000的服装商品(catetory_id是c002)
    SELECT * FROM product WHERE price > 2000 AND category_id IN (‘c001’,‘c002’);

相关文章:

  • 2022-12-23
  • 2021-12-11
  • 2021-08-12
  • 2022-01-09
  • 2022-01-09
  • 2021-07-18
  • 2021-12-18
  • 2021-11-10
猜你喜欢
  • 2021-05-19
  • 2021-08-28
  • 2021-09-14
  • 2021-06-06
  • 2022-12-23
  • 2021-08-26
  • 2021-09-25
相关资源
相似解决方案