A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白菜蔡 初级黑马   /  2019-1-3 12:41  /  560 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        数据库-database简称:DB
数据库:用于存储和管理数据的仓库
特点:
1,持久化存储数据的.其实数据库就是一个文件系统
2,方便存储和管理数据
3,使用了统一的方式操作数据库--SQL

SQL:结构化查询语言--其实就是定义了操作所有关系型数据库的规则.

SQL通用语法:
1.SQL 语句可以单行或多行书写,以分号结尾
2.不区分大小写,关键字用大写
3.单行注释 : --空格XXX   多行注释: /*XXX */   mysql特有注释: # XXX
4.可使用空格和锁紧tab键增强语句书写

        SQL分类
        -DDL:操作数据库,表

        1.操作数据库(database):
        CRUD
C-create:
创建--create database if not exists 数据库名称;
create database XXX character set gbk;创建gbk字符集的数据库;

R-retrieve:
查询--查询所有数据库名称:show databases;
--查询某个数据库的字符集:show create database 数据库名称;

U-update:
修改字符集--alter database XXX character set 字符集名称;

D-delete:删除
删除数据库--drop database if exists 数据库名称;

使用数据库
查询当前正在使用数据库名称--select database();
使用数据库--use 数据库名称;

        2.操作表(table):
        数据库类型:
int--整数类型
double(最多位数,小数点后位数)--小数类型,比如:100.0 为最长4位,小数点后1位
date--日期类型,只包含年月日,格式为:yyyy-MM-dd
datetime--日期,包含年月日,时分秒.格式:yyyy-MM-dd HH:mm:ss
timestamp--时间措类型,如果不赋值,则自动使用系统当前时间 格式:yyyy-MM-dd HH:mm:ss
varchar(最大长度)--字符串类型 一个中文为一个字符.一个字母也为一个字符

C-create:创建
create table 表名(
        列名1  数据类型1,
        列名2 数据类型2--注意:最后一列不需要加逗号
);
复制表:
create table XXX like 被复制的表名;

R-retrieve:查询
查询某个数据库中所有表名称--show tables;
查询表的结构--desc 表名;

U-update:修改
修改表名--alter table 表名 rename to 新表名

修改表的字符集--alter table 表名 character set 字符集名;
添加一列--alter table 表名 add 列名 数据类型;

修改列名 类型--alter table 表名 change 列名 新列名 新数据类型;
alter table 表名 modify 列名 新数据类型--只修改数据类型

删除列--alter table 表名 drop 列名;

D-delete:删除
drop table 表名;
drop table if exists 表名;

        -DML:操作表中的数据-增删改
添加数据--insert into 表名(列名1,列名2) values(值1,值2);
注意:
1.列名和值要一一对应.
2.如果表名后不定义列名,则默认给所有列添加值
3.除了数字类型,其他类型需要使用引号引起来,单双都行

删除数据--delete from 表名 where 条件; 不推荐使用,有多少条记录就会执行多少次删除操作,效率低
另一种删除法--truncate table 表名;    推荐使用, 因为会先删除表,然后在创建一个一模一样的空表;效率更高
注意:
1.如果不加条件,则删除表中所有记录.

修改数据--update 表名 set 列名1 = 值1, 列名2 = 值2 where 条件;
注意:如果不加条件,则会修改所有列的值

        -DQL:操作表中的数据-查
查询表中的所有数据--select * from 表名;

1.语法
select 字段列表
from 表名列表
where 条件列表
group by 分组字段
having 分组之后的条件
order by 排序
limit 分页限定

2.基础查询
-1.多个字段查询--select 列名1,列名2 from 表名;
-2.去除重复--select distinct 列名 from 表名;
-3.计算列--select 列名1,列名2,列名1+列名2 from 表名;
如果有null参与计算,结果都为null,解决方法:
select 列名1,列名2,列名1+ifnull(列名2,0) from 表名;
-4.起别名
select 列名1,列名2,列名1+ifnull(列名2,参数) as 别名 from 表名;
注意:  as 可以省略 但不能省略空格

        -DCL:授权

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马