我是靠谱客的博主 冷静鸵鸟,最近开发中收集的这篇文章主要介绍大型sql教程直接看文档https://www.w3school.com.cn/sql/sql_alter.asp 今天做了道笔试题,竟然用sql压底,竟然还有建表。好吧,自从会用自动化工具和MyBatis-Plus,我就很好少直接操作数据库了。简单来说:sql的第一个字就是关键字,即你具体的操作也可以简单创建,注意编码修改数据库属性接下来就是建表具体操作 删除表这里就有道面试题truncate table 和delete * from的区别?修改表属性数据操作DML查询操作selectlike,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
直接看文档https://www.w3school.com.cn/sql/sql_alter.asp
今天做了道笔试题,竟然用sql压底,竟然还有建表。
好吧,自从会用自动化工具和MyBatis-Plus,我就很好少直接操作数据库了。
简单来说:
SQL就是国际化标准的操作数据库语言,不同数据库有略微不同,本文用的Mysql
我们可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
sql的第一个字就是关键字,即你具体的操作
DML :
- SELECT - 从数据库表中获取数据
- UPDATE - 更新数据库表中的数据
- DELETE - 从数据库表中删除数据
- INSERT INTO - 向数据库表中插入数据
DDL :
- CREATE DATABASE - 创建新数据库
- ALTER DATABASE - 修改数据库
- CREATE TABLE - 创建新表
- ALTER TABLE - 变更(改变)数据库表
- DROP TABLE - 删除表
- CREATE INDEX - 创建索引(搜索键)
- DROP INDEX - 删除索引
操作数据库是要有权限的,具体数据库具体修改,尽量以管理员或最高权限操作
首先当然是创建数据库,直接上代码,万能公式
if exists (select * from sysdatabases where name='databaseName')
drop database databaseName
go
Create DATABASE databasename
on primary-- 默认就属于primary文件组,可省略
(
/*--数据文件的具体描述--*/
name=‘databasename_data’,-- 主数据文件的逻辑名称
filename=‘'所存位置:databasename_data.mdf’, -- 主数据文件的物理名称
size=数值mb, --主数据文件的初始大小
maxsize=数值mb, -- 主数据文件增长的最大值
filegrowth=数值%--主数据文件的增长率
)
log on
(
/*--日志文件的具体描述,各参数含义同上--*/
name='databasename_log', -- 日志文件的逻辑名称
filename='所存目录:databasename_log.ldf', -- 日志文件的物理名称
size=数值mb, --日志文件的初始大小
filegrowth=数值%--日志文件的增长值
)
也可以简单创建,注意编码
create database datebaseName charset utf8;
修改数据库属性
alter database databaseName 属性名=属性值 属性名=属性值 ...;
删除数据库只需要一行
drop database databasename
还有一个查看你创建数据库的语句
show create database databaseName
接下来就是建表
create table 表名(
列名 数据类型,
列名 数据类型,
...
);
具体操作
#mysql需要进入表操作
use mydb1;
#检查
drop table if exists stu;
#创建
create table student(
id int primary key auto_increment, primary key标记主键 auto_increment自增
name varchar(20),
gender varchar(10),
birthday date,
score double
)ENGINE=InnoDB DEFAULT CHARSET=gb2312; 这后缀可以不写,默认
删除表
drop table table_name //这是将表连同表中信息一起删除但是日志文件中会有记录
delete from table_name //这是将表中信息删除但是会保留这个表
truncate table table_name //释放表数据
这里就有道面试题
truncate table 和delete * from的区别?
答:
1.delete from语句可以使用where对要删除的记录进行选择。而使用truncate table将删除表中的所有记录。
2.truncate table不仅是删除表里面的数据,而且还会清空表里面主键的标识。而delete不会。
3.truncate table不会激发触发器。而delete会。
修改表属性
#修改表Student
alter table Student
#添加字段Birthday
add Birthday date
#删除字段
drop COLUMN Birthday
#改变表中列的数据类型
alter COLUMN Birthday int
数据操作DML
查询操作select
->基础查询
1.查询单表中的单个字段
select 字段 from 表名;
2.查询单表表中多个字段(结果的字段根据你的输入)
select 字段1,字段2,字段3 ... from 表名
3.查询表中的所有字段
select * from 表名;
注意:如果字段是关键字,可以用 ‘ 字段 ’ 标注
-
起别名
select name n,age a from student s;
-
去重distinct
select distinct age from student;
-
+号作用,只能是运算符
select ‘123’+123;
转换字符为数值
->246
select 'john'+123;
转换失败
->0
select null+123;
一方为null
->null
-
拼接concat
select concat(字段1,字段2) as 别名 from studet
-
判断null值ifnull函数
select ifnull(字段,值)from 表名;
#值是你想要设置为Null的显示什么
->条件查询
select
查询列表
from
表名
where
筛选条件
1.按照条件表达式
条件运算符:> ,<, = ,!=,<>,>=,<=
# > 大于 , 其他类推
select * from student age>18;
# != 和<> 不等于
select * from student age<>18;
不等于推荐用<>
2.逻辑运算符
&& ,|| , ! 与或非 (不推荐)
and ,or ,not
#查询工资在10000-20000的员工名
select name from emp where salary>=10000 and salary <=20000;
#查询部门编号不是在90-100的,或者工资高于15000的员工的信息
select * from emp where not(id>=90 and id<=100) or salary > 10000;
3.模糊查询
-
like
#查询员工姓名包含a的员工信息
select * from emp where name like '%a%';
# % 代表多个字符
# %a% 包含a
# a% 以a开头
# %a 以a结尾
# a_ _代表一个字符
# _a_e_ 既第二个字符为a,第四个字符为e
如果要查_字符,需要通过转义字符来_
也可以由escape '_' 来申明_是字符
select * from emp where name like 'a_' escape '_' ;
-
between and
#查询年龄在18-28的员工
select * from emp where age between 18 and 28;
-
in
#查询id是1,2,3的员工信息
select * from emp where id in(1,2,3)
注意()中的类型需要一致
-
is null和is not null,<=>安全等于(可判断null)
select * from emp where pct is not null;
select * from emp where pct is null;
4.排序查询
-
order by(放在最后 )
从高到低 降序
select * from emp order by salary desc;
从低到高(默认)升序
select * from emp order by salary asc;
多个排序 首先参考第一个,相同参考第二排序
select * from emp order by salary asc,id desc,age desc ...;
最后
以上就是冷静鸵鸟为你收集整理的大型sql教程直接看文档https://www.w3school.com.cn/sql/sql_alter.asp 今天做了道笔试题,竟然用sql压底,竟然还有建表。好吧,自从会用自动化工具和MyBatis-Plus,我就很好少直接操作数据库了。简单来说:sql的第一个字就是关键字,即你具体的操作也可以简单创建,注意编码修改数据库属性接下来就是建表具体操作 删除表这里就有道面试题truncate table 和delete * from的区别?修改表属性数据操作DML查询操作selectlike的全部内容,希望文章能够帮你解决大型sql教程直接看文档https://www.w3school.com.cn/sql/sql_alter.asp 今天做了道笔试题,竟然用sql压底,竟然还有建表。好吧,自从会用自动化工具和MyBatis-Plus,我就很好少直接操作数据库了。简单来说:sql的第一个字就是关键字,即你具体的操作也可以简单创建,注意编码修改数据库属性接下来就是建表具体操作 删除表这里就有道面试题truncate table 和delete * from的区别?修改表属性数据操作DML查询操作selectlike所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复