show databases;
drop database XXX;
SHOW TABLES;
create table XXX(字段名 类型(长度),…)DEFAULT CHARACTER SET utf8;
初级程序员,对数据的操作(对数据的增删改查)最重要
update 表名 set 字段名=XXX where 字段名=DDD;
delete from 表名;
insert 表名 values(字段1,字段2);
select * from 表名;
alter table 表名 add column 列名 NUMERIC(总位数,小数位);
desc 表名;
set names gbk;//防止中文乱码
exit
#################################################
图形化界面中:
double类型字段,长度必须写小数位数
如:double 3,1
#################################################
字段约束
当表里的字段值想要添加约束条件时,就可以使用各种字段约束
通常在创建表时就已确定,那些字段添加哪种约束
主键约束---此字段变为主键,并拥有主键特点(唯一,非空)
非空约束---此字段不可为空
唯一约束---此字段必须唯一
主键约束–primary key
CREATE TABLE 表名(列名 类型 PRIMARY KEY AUTO_INCREMENT);
(AUTO_INCREMENT–自动递增)
非空约束–not null
CREATE TABLE 表名 (列名 类型 NOT NULL);
唯一约束–unique
CREATE TABLE 表名 (列名 类型 UNIQUE);
#################################################
<SQL基础函数>
lower 转小写
upper 转大写
SELECT 列名1,列名2,LOWER(列名1),UPPER(列名2) FROM 表名;
length 字段值长度(1个字母/数字占1;1个数字占3)
SELECT 列名1,LENGTH(列名1) FROM 表名;
substr 截取字符串
SELECT 列名1,SUBSTR(列名1,从第几个开始截取),SUBSTR(列名1,从第几个开始截取,截取几个)FROM 表名;
concat 拼接字符串
SELECT 列名1,CONCAT(列名1,“XXXXXX”,123,456,…)FROM 表名;
replace 替换
SELECT 列名1,CONCAT(666,SUBSTR(列名1,从第几个开始截取))FROM 表名;
↓
SELECT 列名1,REPLACE(列名1,‘a’,666)FROM 表名;
ifnull 替换指定字段中的null为其他值
SELECT 列名1 ,IFNULL(列名1,XXXX)FROM 表名;
两个字段合计
SELECT 底薪,绩效,底薪+IFNULL(绩效,0) FROM 表名;
12薪年收入
SELECT 底薪,绩效,底薪*12+IFNULL(绩效,0)*12 FROM 表名;
round小数四舍五入 & ceil小数进一位(向上取整) & floor小数直接舍去(向下取整)
SELECT 列名1 ,ROUND(列名1)FROM 表名;
SELECT 列名1 ,CEIL(列名1)FROM 表名;
SELECT 列名1 ,FLOOR(列名1)FROM 表名;
now获取当前年月日时分秒
SELECT NOW();
year & month & day年月日
获取年…
SELECT YEAR(NOW());
SELECT YEAR(‘2020-08-26’),MONTH(NOW()),DAY(NOW()),HOUR(NOW()),MINUTE(NOW()),SECOND(NOW());
转义字符
SELECT ‘xi’an’;错误
SELECT ‘xi’an’;正确,输出xi’an
查指定列
select 列名 from 表名;
select 列名1,列名2 from 表名;
效率:查越少越快
uuid显示通用唯一识别码
SELECT UUID();
这个值可以认为是每次执行都不相同。并且不同实例之间也只有极微小概率重复。
#################################################
<条件查询>
distinct 在搜索结果中去除重复的记录行
SELECT DISTINCT 列名 FROM 表名;
where 条件查询
注意:where中不能使用列别名!!
select * from emp where empno=100; 唯一条件
SELECT DNAME FROM DEPT WHERE DEPTNO=2;
SELECT dname FROM DEPT WHERE deptno>2;
(先走from确定表,再走where缩小范围,最后select输出结果)
SELECT dname FROM DEPT WHERE deptno=2 AND loc='二区'; 多条件
SELECT dname FROM DEPT WHERE deptno=2 OR deptno=3;
like 模糊查询 通配符–啥都行
select * from emp where ename like ‘l%’ --以l开头的 高效,不是1开头的直接不看
select * from emp where ename like ‘%a’ --以a结束的
select * from emp where ename like ‘%a%’ --中间包含a的 低效,查得越多越慢
select * from emp where ename like ‘l__’ --l后面有两个字符的 _代表一个字符位置
null 判空
select * from emp where mgr is null --过滤字段值为空的
select * from emp where mgr is not null --过滤字段值不为空的
between and 区间范围
(是包含的关系)
SELECT * FROM emp
select * from emp where sal<3000 and sal>10000
select * from emp where sal<=3000 and sal>=10000–等效
select * from emp where sal between 3000 and 10000–等效
limit 实现翻页
select * from emp limit 2 --列出前两条
select * from emp limit 1,2 --从第二条开始,展示2条记录
select * from emp limit 0,3 --从第一条开始,展示3条记录–前三条
order by 按照指定字段排序
SELECT * FROM emp order by sal #默认升序
SELECT * FROM emp order by sal desc #降序
英文字符--按字典排序(优先首字母)
日期--按数字大小排
汉字--按utf8编码表比对应数字大小(优先首字)
int a = '总';
System.out.println(a);//24635
int b ='经';
System.out.println(b);//32463
#################################################