sql,用来操作数据库的语言,一种标准
结构化查询语言
DML(Data Manipulation Langue)数据库操纵语言
DDL(Data Defination Langue)数据定义语言
DCL数据控制语言
DQL数据查询语言

数据库常用操作

建库

创建数据库,数据库名称:cgb2022

create database cgb2022 DEFAULT CHARACTER SET utf8;
删库

删除名称是cgb2022的数据库

drop database cgb2022;
查看所有数据库

查看所有数据库

show databases;

表的常用操作

使用数据库:
use cgb2022;
创建表:

创建tb_door表,有id,door_name,tel字段

create table tb_door(
id int primary key auto_increment,
door_name varchar(100),
tel varchar(50)
);
修改表:

添加列:

alter table tb_door add column money NUMERIC(7,2)
删除表

删除名称是tb_door的表

drop table tb_door;
查看所有表
show tables;
查看表结构/设计表

查看tb_door表结构

desc tb_door;

表记录的常用操作

插入记录

向tb_door表中插入2条记录

insert into tb_door values(null,'永和大王1店',666);insert into tb_door values(null,' 永和大王2店',888);
查询记录

查询tb_door表中的所有记录

SELECT * FROM tb_door;
修改记录

修改tb_door表中id为1的记录

update tb_door set tel=555 where id=1;
删除记录

删除tb_door表中id为2的数据

Delete from tb_door where id=2;
排序

将tb_door表记录按照tel排序

Select * from tb_door order by tel desc;
记录总数

查询tb_door表中的总记录数

Select count(*) from tb_door;

数据类型

命名规则

字段名必须以字母开头,尽量不要使用拼音
长度不能超过30个字符(不同数据库,不同版本会有不同)
不能使用SQL的保留字,如where,order,group
只能使用如下字符az、AZ、0~9、$ 等
Oracle习惯全大写:USER_NAME,mysql习惯全小写:user_name
多个单词用下划线隔开,而非java语言的驼峰规则

字符
  • char长度固定,不足使用空格填充,最多容纳2000个字符,char(11)存储abc,占11位。查询速度极快但浪费空间
  • varchar变长字符串,最多容纳4000个字符,varchar(11)存储abc,只占3位。查询稍慢,但节省空间。Oracle为varchar2
  • 大文本: 大量文字(不推荐使用,尽量使用varchar替代)
    以utf8编码计算的话,一个汉字在u8下占3个字节

注:不同数据库版本长度限制可能会有不同

数字

tinyint,int整数类型
float,double小数类型
numeric(5,2) decimal(5,2)—也可以表示小数,表示总共5位,其中可以有两位小数
decimal和numeric表示精确的整数数字

日期

date 包含年月日
time时分秒
datetime包含年月日和时分秒
timestamp时间戳,不是日期,而是从1970年1月1日到指定日期的毫秒数

图片

blob 二进制数据,可以存放图片、声音,容量4g。早期有这样的设计。但其缺点非常明显,数据库庞大,备份缓慢,这些内容去备份多份价值不大。同时数据库迁移时过大,迁移时间过久。所以目前主流都不会直接存储这样的数据,而只存储其访问路径,文件则存放在磁盘上。

字段约束

主键约束

主键约束:如果为一个列添加了主键约束,那么这个列就是主键,主键的特点是唯一且不能为空。通常情况下,每张表都会有主键,使用primary key。

添加主键约束,例如将id设置为主键:

主键自增策略** **当主键为数值类型时,为了方便维护,可以设置主键自增策略(auto_increment),设置了主键自增策略后,数据库会在表中保存一个AUTO_INCREMENT变量值,初始值为1,当需要id值,不需要我们指定值,由数据库负责从AUTO_INCREMENT获取一个id值,作为主键值插入到表中。而且每次用完AUTO_INCREMENT值,都会自增1. AUTO_INCREMENT=1

create table abc(
id int primary key auto_increment
);
insert into abc values(null);
insert into abc values(null);
insert into abc values(null);
select * from abc;
非空约束

非空约束:如果为一个列添加了非空约束,那么这个列的值就不能为空,但可以重复,使用null。

添加非空约束,例如为password添加非空约束:

create table user(
id int primary key auto_increment,
password varchar(50) not null
);
show tables;
insert into user values(null,null);//不符合非空约束
insert into user values(null,123;);//OK
唯一约束

唯一约束:如果为一个列添加了唯一约束,那么这个列的值就必须是唯一的(即不能重复),但可以为空。

添加唯一约束,例如为username添加唯一约束及非空约束:

create table test(
id int primary key auto_increment,
username varchar(50) unique--唯一约束
);
show tables;
insert into test values(null,'lisi');
insert into test values(null,'lisi');--username的值要唯一,重复会报错的
select * from test;

事务

mysql数据库事务用来保证
MySQL数据库也会自动管理事务
mysql也允许程序员手动管理事务
四大特征:acid
原子性:把多条sql语句看做一个原子密不可分,要么全成功,要么全失败
一致性:保证数据守恒,将来广泛应用到分布式管理系统
隔离性:mysql数据库可以支持高并发,可能会有数据安全的隐患,也有复杂的隔离级别
持久性:对数据库的增删改查,有持久影响

隔离级别

读未提交 read uncommited:性能好,安全性差
读已提交 read commited:oracle数据库默认级别,性能较差,安全性较好
可重复读 repeatable read:mysql默认级别,性能在差一点,安全性更好
串行化serializable:安全性好,性能非常差

开启事务start transaction

数据库 达内cbg day01相关推荐

  1. PLSQL数据库select语句Day01

    https://www.yuque.com/docs/share/fe42dbdb-7d33-4ea9-9021-48bfcb67411b?# 一 SQL语句 1.1.基础语句 --注释 /* 多行注 ...

  2. dos窗口mysql创建数据库指定字符集_MySQL数据库 dos 命令窗口命令集

    一.DDL:数据库定义语言 数据库的操作:(操作关键字不分大小写) create database day01;//创建数据库 show databases;//查看该帐号下的所有数据库 show c ...

  3. MySQL数据库记录总结

    MySQL数据库记录总结 SQL分类 DDL数据定义语言:如:操作数据库,操作表 DML数据操纵语言:如:对表中的记录操作增删改查 DQL数据查询语言:如:对表中数据的查询操作 DCL数据控制语言:如 ...

  4. 我爱Java系列---【mysql基础约束】

    SQL语句分类 数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等.关键 字:create,alter,drop等 数据操作语言:简称D ...

  5. 掌握 SQL 这些核心知识点,出去吹牛逼再也不担心了

    点击关注公众号,回复"1024"获取2TB学习资源! 第一章 SQL的介绍 1.1.什么是sql SQL:Structure Query Language.(结构化查询语言),通过 ...

  6. oracle竖着显示数据,2020 Oracle、mysql经典例题一(如何把表格数据竖着排列)

    2020 Oracle.mysql经典例题一(如何把表格数据竖着排列) 2020 Oracle.mysql经典例题一(如何把表格数据竖着排列) Oracle.mysql经典例题--如何把表格成绩竖着排 ...

  7. mysql 基础入门及单表查询

    mysql单表 今日内容介绍 数据库: 数据库管理系统 使用数据库管理系统通过sql语句 创建数据库,创建表,插入数据,更新数据,删除数据,查询数据 数据库约束 数据库的备份还原 数据库的内容比较多, ...

  8. C/C++ 笔记、Python 笔记、JavaWeb + 大数据 笔记

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 大数据.AI.python.C++学习资源 到上面一个文章中有 ...

  9. 常见算法思想4:迭代法

    迭代法 迭代法也被称为辗转法,是一种不断用变量的旧值递推新值的过程,在解决问题时总是重复利用一种方法.与迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题.迭代法又分为精确迭代和近似迭代.& ...

最新文章

  1. 年薪百万的华为「天才少年」:谢凌曦分享「进阶」之路,选题最重要!
  2. Block相关内容梳理
  3. C#session共享+redis_Shiro权限管理框架(二):Shiro结合Redis实现分布式环境下的Session共享...
  4. flink读不到kafka数据问题
  5. 【转】Pro Android学习笔记(八):了解Content Provider(下中)
  6. [转]GeoHash核心原理解析
  7. Python中的抽象
  8. MQAM(M元正交幅度调制)
  9. pdo怎么建mysql表_PDO操作数据库的基本步骤
  10. 数学运算模块:Python3.7的math模块与cmath模块
  11. AppStore下载安装失败
  12. Wordpress采集开心版,免费Wordpress采集发布伪原创
  13. java 位运算取8位_5巨星生涯全明星队友:乔丹2位,科比8位,那詹姆斯呢?
  14. 小目标 | 4周学会用邮箱管理时间和工作流
  15. 手把手教你做游戏外挂
  16. 写了个自动批改小孩作业的代码
  17. 用matlab做随机实验1
  18. golang各数值类型的最大最小值
  19. 索尼u盘重装系统步骤
  20. 电脑系统(U盘安装) win7 win8 win10XP

热门文章

  1. 并发下线程池的最佳数量计算
  2. 国产心:小米澎湃S2处理器正式量产
  3. app中头像,圆形图片
  4. oracle的可视化界面操作工具【PLSQL】
  5. 就在今天,微博服务器又双叒叕崩了,微博程序员需要缓口气!
  6. VS2019智能提醒突然变慢——安装NVIDIA CUDA导致
  7. MATLAB车牌出入库识别(语音播报,库外识别,计时计费)
  8. 使用impdp导入dmp文件
  9. 2023 年淘汰 32 位 ARM 将全面转向 64 位 CPU 架构
  10. “Hello World!”答案