一、SQL简介
结构化查询语言,一门操作关系型数据库的编程语言。英文:Structured Query Language,简称 SQL。
二、Mysql和Oracle关于区分大小写
MySQL在Windows下都不区分大小写。
oracle中分为两种情况,单纯的sql语句不区分大小写,但是如果查询某个字符的话就需要区分大小写。
1、如以下情况,是不区分大小写的,查询结果都是一致的
select * from emp;
SELECT * FROM EMP;
2、如在emp表中查询ename为“SMITH”(不含引号)的信息,就必须注意大小写:
select * from emp where ename=’SMITH’; – 这样是有结果的
select * from emp where ename=’smith’; – 这样则查询不出结果
如果不知道表中的字段大小写的情况下,可以加上lower关键字,表示按照小写进行查询。
上面的sql可以写成:
select * from emp where lower(ename)=’smith’;
lower(ename)表示表中字段按照小写查询,所以等号右边要全部小写。
参考网址:
mysql与oracle区分大小写的规则_oracle区分大小写查询语句-CSDN博客
三、DDL操作数据库
3.1、查询有哪些数据库
show databases;
3.2、创建数据库
CREATE DATABASE 数据库名称
create database test_one;
3.3、创建数据库(判断,如果不存在则创建)
create database if not exists test_one;
3.4、删除数据库
DROP DATABASE 数据库名称;
drop database test_one;
3.5、删除数据库(判断,如果存在则删除)
drop database if exists test_one;
3.6、使用数据库
USE 数据库名称
use test_one;
总结:
四、DDL操作表
操作表也就是对表进行增(Create)删(Retrieve)改(Update)查(Delete)。
4.1、查询当前数据库下所有表名称
SHOW TABLES;
4.2、查询表结构
DESC 表名称;
DESC xxl_job_group;
4.3、创建表
CREATE TABLE 表名 (
字段名1 数据类型1,
字段名2 数据类型2,
…
字段名n 数据类型n
);
使用创建表的sql创建一张表:
create table tb_user (
id int,
username varchar(20),
password varchar(32)
);
4.4.、删除表
DROP TABLE 表名;
drop table test_one;
4.5.、删除表时判断表是否存在
DROP TABLE IF EXISTS 表名;
drop table if exists test_one;
4.6、修改表名
ALTER TABLE 表名 RENAME TO 新的表名;
将表名student修改为stu
alter table student rename to stu;
4.7、添加一列
ALTER TABLE 表名 ADD 列名 数据类型;
给stu表添加一列address,该字段类型是varchar(50)
alter table stu add address varchar(50);
4.8、修改数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;
将stu表中的address字段的类型改为 char(50)
alter table stu modify address char(50);
4.9、修改列名和数据类型
ATER TABLE 表名 CHANGE 列名 新列名 新数据类型;
将stu表中的address字段名改为 addr,类型改为varchar(50)
alter table stu change address addr varchar(50);
4.10、删除列
ALTER TABLE 表名 DROP 列名;
将stu表中的addr字段 删除
alter table stu drop addr;
五、SQL中的数据类型
MySQL支持多种数据类型,可以分为三类:数值、日期、字符串。
下面重点介绍常见的几种
5.1、数值
tinyint : 小整数型,占一个字节
int:大整数类型,占四个字节
例如:age int
不论是int(10)还是int(11)等等,int型数据都是占4个字节存储空间。int(11)的意思是int型数据的显示宽度为11位
double:浮点类型
使用格式:字段名 double(总长度,小数点后保留的位数)
例如:score double(5,2)
5.2、日期
date:日期值。只包含年月日
例如:birthday date
datetime:混合日期和时间值。包含年月日时分秒
5.3、字符串
char:定长字符串。
优点:存储性能高
缺点:浪费空间
例如: char(10) 存储 "Hello" 时,会用空格将后面的五个字符补齐到10个字符,即 "Hello "。
Varchar:变长字符串。
优点:节约空间
缺点:存储性能底
例如: name varchar(10) 如果存储的数据字符个数不足10个,那就数据字符个数是几就占几个的空间
当定义 name varchar(4),而name取值为 '我好害怕啊',超过4个字符长度时,就会报错。这里的数字代表的是字符长度而不是字节长度。
其实不必纠结于varchar(10) 到底是什么意思,如果数据存储空间不足够导致插入数据失败,尽管加大存储空间就好了
六、DML
DML主要是对数据进行增(insert)删(delete)改(update)操作
6.1、给指定列添加数据
INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);
给STU表中的id,name这两个字段添加数据。
INSERT INTO STU (id, NAME) VALUES (1, '张三');
6.2、给全部列添加数据
INSERT INTO 表名 VALUES(值1,值2,…);
给所有列添加数据,列名的列表可以省略的
6.3、批量添加数据
给STU这张表中的所有列添加3条数据,最后一条数据用分号结束,前面的数据用逗号分隔。
6.4、修改表数据
UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 条件]
将张三的生日改为 1999-12-12 分数改为99.99
update stu set birthday = '1999-12-12', score = 99.99 where name = '张三';
注意:如果update语句没有加where条件,则会将表中所有数据全部修改!
update stu set sex = '女';
Stu表中的sex字段全部会改成女。
6.5、 删除数据
DELETE FROM 表名 [WHERE 条件] ;
删除stu表中张三的记录
delete from stu where name = '张三';
注意:如果delete语句没有加where条件,则会将表中所有数据全部删除
删除stu表中所有的数据
delete from stu;
DQL(Data Query Language) 数据查询语言,用来查询数据库中表的记录(数据)见JavaWeb(三)
七、Idea中查看数据库创建sql以及建表语句
7.1、查看数据库创建sql
7.2、查看建表语句