SQL操作一

2019-12-31 14:44:54 浏览数 (1)

文章目录

  1. 1. Day01-基本的语句
    1. 1.1. 数据库简介
    2. 1.2. 什么是DB
    3. 1.3. 什么是DBMS
    4. 1.4. 数据库分类
    5. 1.5. 主流关系型数据库介绍
    6. 1.6. mysql安装
    7. 1.7. 数据库相关SQL
      1. 1.7.1. 什么是SQL
      2. 1.7.2. 连接数据库
      3. 1.7.3. 数据库操作
    8. 1.8. 表相关SQL
      1. 1.8.1. 什么是表
      2. 1.8.2. 数据库表的引擎
      3. 1.8.3. 创建表时指定引擎和字符集
      4. 1.8.4. 创建表
      5. 1.8.5. 查询所有表
      6. 1.8.6. 查询单个表
      7. 1.8.7. 查看表的字段属性
    9. 1.9. 修改表
      1. 1.9.1. 修改表的名称
      2. 1.9.2. 修改表的属性(引擎和字符集)
      3. 1.9.3. 添加表字段
      4. 1.9.4. 修改字段名和类型
      5. 1.9.5. 修改字段类型和位置
      6. 1.9.6. 删除字段
    10. 1.10. 删除表
    11. 1.11. 数据相关的SQL(CRUD)
      1. 1.11.1. 插入语句
      2. 1.11.2. 查询语句
      3. 1.11.3. 更新语句
      4. 1.11.4. 删除语句
      5. 1.11.5. TRUNCATE语句

Day01-基本的语句

数据库简介

因为传统的文本形式存储数据存在很多的弊端:

  1. 执行效率低
  2. 占用内存

什么是DB

Database : 数据库 数据库本质是文件集(多个文件) 会按照特定存储规范进行数据增删改查

什么是DBMS

DateBaseManagementSystem : 数据库管理系统,本质就是管理数据库文件的软件

  1. Oracle
  2. Mysql
  3. DB2
  4. Sqlite
  5. SqlServer

数据库分类

关系型数据库

  1. 是经过数学理论验证过,可以保存现实生活中任何关系的数据库(其中的高级映射,比如一对多,多对一,一对一都是关系)
  2. 关系数据库是以表为单位进行存储的
  3. Oracle mysql DB2 sqlite sqlserver都是关系型数据库

非关系型数据库

  1. Redis数据库是非关系型数据库
  2. key-value形式进行存储

主流关系型数据库介绍

Mysql : 开源 卖服务赚钱 被sun公司收购 sun被oracle收购 5.5版本因为oracle技术大牛对其进行升级,性能大幅提升,Mysql 从6.0开始收费,导致原来的mysql工程师跳槽创建了MariaDB,MariaDB内部实际上就是mysql,创建者的女儿叫Maria Oracle

  1. 闭源 卖产品
  2. 支持windows,Linux

DB2

  1. 闭源 大型数据库 通常是国字头的企业在用

sqlite

  1. 轻量级数据库,大小几十k,应用于移动或者嵌入式设备

SQLServer

  1. 微软公司 闭源 主要.net开发的网站中

mysql安装

端口号3306 编码格式 utf8

数据库相关SQL

什么是SQL

Strctured Query Language : 结构化查询语言 通过sql语言和DBMS(数据库管理软件)进行交互

连接数据库

终端中输入: mysql -u root -p 输入密码即可,没有密码直接回车即可

数据库操作

create database d_name ; 创建数据库d_name drop database d_name; 删除数据库d_name show databases; 显示所有的数据库 show create database d_name; 查看单个数据库 use d_name; 使用当前的数据库d_name create database db_name character set utf8;创建数据库指定字符集

表相关SQL

什么是表

表是数据库中存放数据的单元,任何数据都是存放到表中 类似java中的Class,表中的字段对应class的属性

数据库表的引擎

innoDB : 支持数据库的高级操作,包括事务 主键 外键等 myisam : 只具备基本的数据库储功能

创建表时指定引擎和字符集

格式 :create table t_name(字段名 字段类型,....) engine=myisam charset=utf8;

创建表

格式: create table 表名(字段名 类型,字段名 类型,......); 例子: create table name(id int,name char(10),age int); 执行原理: 当在中断输入建表语句 终端会把写好的sql发送给DBMS,然后解析到create table时,识别出要创建一个表。

查询所有表

show tables ;

查询单个表

show create table tale_name; 使用上面的语句会出现创建表的语句和字符编码

查看表的字段属性

desc table_name ;

修改表

修改表的名称

格式 : rename table 原名 to 新名 rename table user to t_user;

修改表的属性(引擎和字符集)

格式 :alter table 表名 engine-innoDB charset=utf8; alter table t engine=InnoDB charset=GBK;

添加表字段

  • 在最后添加 格式 : alter table 表名 add 字段名 字段类型; alter table t add age int;
  • 在最前添加 格式: alter table 表名 add 字段名 字段类型 first; alter table t add newage int first;
  • 在某个字段后面添加 格式: alter table 表名 add 字段名 字段类型 after 字段名; alter table t add birthday varchar(10) after id;

修改字段名和类型

alter table 表名 change 原字段名 新字段名 新的字段类型 ; alter table t change birthday bth Date;

修改字段类型和位置

alter table 表名 modify 字段名 类型 位置(first/after 字段名); alter table t modify name int after age; 将name移到age的后面,并且修改了name字段的类型为int alter table t modify name varchar(10) first; 将字段name移到最前面

删除字段

alter table 表名 drop 字段名; alter table t drop bth; 将t表中的bth字段删除

删除表

格式 : drop table 表名 ;

数据相关的SQL(CRUD)

插入语句

  • 全表插入 格式 insert into 表名 values(value1,value2,…) 格式要求: values里面的值的数量顺序必须要和表的字段一致 insert into user values(1,'jack',22);
  • 指定字段插入 格式: insert into 表名(字段1,字段2,..) values(value1,value2,….) insert into user(id,name,age) values(1,'jack',22); 格式要求: values中的值必须和前面格式的字段一致。
  • 插入多组数据 格式: insert into values(第一组数据),(第二组数据)…. insert into user values(1,"孙悟空",22),(2,"唐僧",44);
  • 指定字段插入多组数据 insert into user(age) values(22),(33);

查询语句

  • 查询所有字段 格式:select * from 表名 select * from user;
  • 查询指定字段 格式:select 字段1,字段2 from 表名 select name.age from user;

更新语句

  • 更新表中所有的字段 格式: update 表名 set 字段名 = 新的值; update user set age=22;
  • 改变指定条件的字段 格式: update 表名 set 字段名 = 新的值 where 条件; update user set age=22 where id=1; 修改id=1的那一行数据的age

删除语句

  • 指定条件删除 格式: delete from 表名 where 条件 ; delet from user where id=2; 删除id=2的那一行数据
  • 不指定条件删除,那么将会删除整张表数据 delete from user;

TRUNCATE语句

trucate table 表名; 先删除表,然后再创建一样的空表(表的名字相同,字段不变,主要的功能就是清空表中的数据)

0 人点赞