我是靠谱客的博主 冷静鸵鸟,最近开发中收集的这篇文章主要介绍大型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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部