D15--SQL初体验

数据库的介绍

数据库的概述

  • 概念: 本质是一个文件系统,用户可以对数据进行增删改查。
  • 数据的存储方式
    数据保存在内存:优点:内存速度快。缺点:断电、程序退出,数据清除,内存价格贵。
    数据库保存在普通文件:优点:永久保存。缺点:增删改查比较麻烦,效率低。
    数据保存在数据库:优点:按照特定的格式永久保存,通过SQL语句操作数据库方便。

数据库管理系统

数据库管理系统(DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护 数据库,对数据库进行统一的管理和控制, 以保证数据库的完整性和安全性

补充:一个DBMS有多个数据库, 一个数据库可以有多张

常见数据库

  • MYSQL: 开源免费数据库,小型数据库,被Oracle收购后开始收费
  • Oracle: 收费的大型数据库。
  • DB2: IBM公司的数据库产品,收费。常应用在 银行系统
  • SQLServer: 微软公司收费的中型数据库,C#,.net等语言常使用。
  • SyBase: 已经淡出历史舞台。
  • SQLite: 嵌入式的小型数据库,应用在手机端。
    常用数据库: MYSQL,Oracle在web应用用,使用最多的是MySQL数据库。
    原因:
    • 开源、免费
    • 功能足够强大,足以应付web应用开发

SQL语句

概念

  1. 结构化查询语言(Structured Query Language)简称SQL,SQL,语句就是对数据库进行操作的一种语言。

SQL作用

SQL是数据库管理系统都需要遵循的规范。不同的数据库生产厂商都支持SQL;语句,但都有特有的内容。

SQL语句的分类

  1. DDL(Data Definition Language): 数据定义语言,的用来定义数据对象:数据库,表,列等。关键字:creat,drop,alter等。
  2. DML(Data Manipulation Language): 数据操作语言,用来对数据库中表的数据进行增删改查。关键字:insert,delete,update
  3. DQL(Data Query Language): :数据查询语言(重点),关键字:select。
  4. DCL((Data Control Language): 数据控制语言,用来定义数据库的访问权限和安全级别,以及创建用户。关键字:GRANT,REVOKE等。
  5. TCL(Transaction Control Language): 事务控制语言。用于控制数据库的事务操作, 关键字:COMMT,SAVEPOINT等。

SQL的通用语法

  1. SQL语句可单行或者多行书写,用分号结束。
  2. MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
  3. 三种注释:-- ,#单行注释内容。多行注释: /* 注释 */

1. DDL语句

创建数据库

  1. 直接创建数据库
    create database 数据库名;
CREATE DATABASE mySql;
  1. 判断是否存在并创建数据库
    create database if not exists 数据库名;
CREATE DATABASE IF NOT EXISTS mySql2;
  1. 创建数据库并指定字符集
    create database 数据库名 character set 字符集;
CREATE DATABASE MySql CHARACTER SET GBK;

查看数据库

  • 查看所有数据库:show databases;
  • 查看某个数据库的定义信息:show create database 数据库名;
  • 修改数据库:ALTER DATABASE 数据库名 DAFAULT CHARACTER SET 字符集;

删除数据库

  • DROP DATABASE 数据库名;
DROP DATABASE Mysql;

使用数据库

  • 查看正在使用的数据库
    SELECT DATABASE();

  • 使用/切换数据库
    USE 数据库名;

DDL操作表

创建表

  • CREATE TABLE 表名(字段名1 字段类型1,字段名2 字段类型2…);
CREATE TABLE 表名(
			id  INT;
			`NAME`  VARCHAR(10);
			age  INT;
);
  • 快速创建一个结构相同的表
    create table 新表名 like 旧表名;

查看表

  • 查看某个数据库中的所有表
    show tables;
  • 查看表结构
    desc 表名;
  • 查看创建表的SQL语句
    show create table 表名;
    删除表
  • 直接删除表
    drop table 表名;

判断表是否存在在删除
drop table if exists 表名;
修改表结构

  1. 向表中添加列
    ALTER TABLE 表名 ADD 列名 类型;
alter table MySQL2 add address VARCHAR(10);		
  1. 修改列的类型或者长度或者约束
    alter table 表名 modify 新列名 数据类型(长度)[约束];
  2. 修改列名
    alter table 表名 change 旧表名 新表名 数据类型(长度)[条件]
  3. 删除列
    alter table 表名 drop 列名;
  4. 修改表名
    rename table 旧表名 to 新表名;
  5. 修改编码
    alter table 表名 character set 编码;

2.DML(数据操作语言)

添加数据

  1. 全列名添加
    insert into 表名(列1,列2,列3…) values(值1,值2,值3…)
    要求:
  • 列和值必须严格对应
  • 要添加的数据不能超过长度
  • 如果添加的数据不是数值类型,要使用单引号(推荐)或者双引号
  • 如果要添加空值,需要使用NULL。
#添加数据
inset into student(id,`name`,age) 
values(001,'唐僧',25);
  1. 指定列添加(常用)
    insert into 表名 (列1,列3,列5…) values(值1,值3,值5…);
  2. 全列值添加
    insert into 表名 values(值1,值2,值3…)
    注意:全列值添加的时候,必须写出所有列的值,不能省略。
  3. 批量添加
    insert into 表名(列1,列2,列3…) values (值1,值2,值3…),(值1,值2,值3…)…;

蠕虫复制
概念:在已有的数据基础上,将原来是数据进行复制,插入到对应的表中
格式:
insert into 表名1 select *from 表名2; 将表名2中的数据复制到表名1中。

更新表记录

  1. 不带条件修改数据
    update 表名 set 字段名=值;
  2. 带条件修改数据
    update 表名 set 字段名=值 where 条件;
  3. 关键字说明
UPDATE :修改数据
SET: 修改哪些字段
WHERE: 指定条件

删除表记录

  • 如果要删除表中的数据,可以使用delete关键字。
  • 格式:
    delete from 表名[where 条件];
  1. 不带条件删除数据 delete from 表名;
  2. 带条件删除数据:delete from 表名 where [条件];
  3. truncate 删除记录: tuncate table 表名;
    区别:
    delete:会逐条删除所有数据
    truncate:会直接摧毁表,然后创建一个全新的表。

DQL(查询操作)

  1. 查询所有列的数据
    select * from 表名;

  2. 查询特定的列
    select 列名,列名 from 表名;

  3. 别名查询
    (1)将查询到结果重新起一个列名
    select 列名1 as 别名1,列名2 as 别名2 from 表名;
    (2)对表 起别名
    select * from 表名 as 别名;
    别名查询中,as可以省略

  4. 去重查询
    (1)select distinct 要去重的列 from 表;
    (2)select distinct 要去重的列1,要去重的列2 from 表;
    ** 注意:这些列(列1,列2)的数据必须全部相同才能当成相同数据。**

  5. 计算查询
    对于查询后的结果进行计算,在显示。
    select 列名 + 指定值 from 表名;
    select 列名1+列名2 from 表名;
    解决null值问题
    (数据的null值加上数字,结果是null)
    ifnull(值1,值2)
    如果值1不是null,那么整个ifnull函数的结果就是值1
    如果值1是null,那么整个ifnull函数的结构就是值2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值