首页 > 数据库 >MySQL基础之SQL基础1

MySQL基础之SQL基础1

时间:2023-04-24 15:31:30浏览次数:39  
标签:语句 SQL -- 数据库 MySQL 基础 emp mysql desc

MySQL基础之SQL基础1

一、SQL简介

# 当面对一个陌生的数据库时,通常需要一种方式与它进行交互,以完成用户所需的各种工作。

# 这个时候,就要用到 SQL 语言了。

# 由于 SQL 语言的标准化,所以大多数关系型数据库系统都支持 SQL 语言,它已经发展成为多种平台进行交互操作的底层回话语言。

二、SQL 分类

DDL 语句

# 数据定义语言,这些语句定义了不同的数据段,数据库、表、列、索引等数据对象。

# 常用的语句关键字主要包括create、drop、alter等。

DML 语句

# 数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。

# 常用的语句关键字主要包括 insert、delete、update 和 select 等。

DCL 语句

# 数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。

# 常用的语句关键字主要包括 grant、revoke 等

三、DDL 语句操作实例

简单来说,DDL 就是对数据库内部的对象进行创建、删除、修改等操作的语言。

1.创建数据库

-- 启动 MySQL 服务之后,输入以下命令连接到 MySQL 服务器: 
$ mysql -uroot -p

-- 接着输入密码,就可以登录数据库了

-- 在以上命令行中,mysql 代表客户端命令, “-u” 后面跟连接的数据库用户,“-p” 表示需要输入密码

登录数据库 01.png

-- 所有的数据都存储在数据库中,因此需要学习的第一个命令是创建数据库
mysql> create database test1;

-- 如果需要知道系统中都存在哪些数据库,可以用以下命令
mysql> show databases;

创建数据库 02.png

-- 在查看系统中已有的数据库后,可以用如下命令选择要操作的数据库:
-- 例如,选择数据库 test1:

mysql> use test1

-- 然后再用下列命令来查看 test1 数据库中创建的数据表:

mysql> show tables;

显示数据表 03.png

2.删除数据库

-- 删除数据库的语法很简单

-- 例如,要删除 test1 数据库可以使用以下语句:

mysql> drop database test1;

删除数据库 04.png

3.创建表

-- 因为 MySQL 的表名是以文件的形式保存在磁盘上,所有表名的字符可以用任何文件名允许的字符。

-- 例如,创建一个名称为 emp 的表。表中包括 ename(姓名)、hiredate(雇用日期)和 sal(薪水)3个字段,字段类型分别为 varchar(10)、date、int(2):

mysql> create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));

-- 表创建完毕,需要查看 emp 表

mysql> desc emp;

-- 为了得到更全面的表定义信息,有时候需要查看创建表的 SQL 语句,可以使用如下命令:

mysql> show create table emp \G;

创建表 05.png

4.删除表

-- 要删除数据库 emp 可以使用以下命令:

mysql> drop table emp;

删除表 06.png

5.修改表

在大多数情况下,表结构的更改都使用 alter table 语句。

a.修改表类型

-- 修改表 emp 的ename 字段定义,将varchar(10)改为 varchar(20):

mysql> desc emp;
mysql> alter table emp modify ename varchar(20);
mysql> desc emp;

修改表类型 07.png

b.增加表字段

-- 在表 emp 中新增加字段 age,类型为int(3):

mysql> desc emp;
mysql> alter table emp add column age int(3);
mysql> desc emp;

增加表字段 08.png

c.删除表字段

-- 将字段 age 删除掉:

mysql> desc emp;
mysql> alter table emp drop column age;
mysql> desc emp;

删除表字段 09.png

d.字段改名

-- 将 age 改名为 age1,同时修改字段类型为int(4);

mysql> desc emp;
mysql> alter table emp change age age1 int(4);
mysql> desc emp;

字段改名 10.png

e.修改字段排列顺序

-- 将新增的字段 birth date 加在 ename 之后:

mysql> desc emp;
mysql> alter table emp add birth date after ename;
mysql> desc emp;

修改字段排列顺序 11.png

-- 修改字段 age1,将它放在最前面:

mysql> desc emp;
mysql> alter table emp modify age1 int(3) first;
mysql> desc emp;

修改字段 age1 12.png

f.更改表名

-- 将表 emp 改名为 emp1

mysql> show tables;
mysql> alter table emp rename emp1;
mysql> show tables;

更改表名 13.png

参考书籍

-- 书名: 深入浅出MySQL	--数据库开发、优化与管理维护(第3版)
    
-- 作者:翟振兴 崔春华 黄荣 董骐铭

标签:语句,SQL,--,数据库,MySQL,基础,emp,mysql,desc
From: https://blog.51cto.com/u_14483476/6221257

相关文章

  • mysql获取指定月份所有日期 列表
    SELECTdate_format(date_add('2023-03-01',INTERVAL(id-1)DAY),'%Y-%m-%d')dateFROMsys_api_infoWHEREid<=DAY(last_day('2023-03-01'))ORDERBYid;sys_api_info是随意一个你自己的数据表只要主键int包含1-31的数据。日期必须为1号开始如:&#......
  • gradle基础知识
       帮助命令:gradle--help查看版本:gradle -v清空所有编译:gradleclean构建:gradlebuild跳过测试构建构建: gradlebuild-xtest第三⽅插件https://plugins.gradle.org/核⼼插件https://docs.gradle.org/current/userguide/plugin_reference.html  ......
  • PostgreSQL 性能优化之 - 大锁与long sql/xact的蝴蝶效应
    PostgreSQL性能优化之-大锁与longsql/xact的蝴蝶效应来自:阿里云数据库 2016-03-16 6554举报简介:在使用数据库时,某些特定的因素结合在一起,就可能引发蝴蝶效应。导致数据库性能的急剧下降。本文要讲的是和以下几个因素有关的:因素1PG的锁排队机制,即使没有获得锁,只要在锁......
  • python mysql eXCEL
    importreimportpymysqlimportrequestsfrombs4importBeautifulSoupimportlxmlimportsys,ioimportopenpyxl#数据库信息host='192.168.56.101'username="root"passwd="123456"database="test"port=3306ch......
  • mysql8存取json
    1、建表CREATETABLE`test`(`id`bigintNOTNULL,`name`varchar(255)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciNULLDEFAULTNULL,`msg`jsonNULL,PRIMARYKEY(`id`)USINGBTREE)ENGINE=InnoDBCHARACTERSET=utf8mb4COLLATE=utf8mb4_0900_ai......
  • SQL 跨服务器 -查询 修改
    update[Business_TasksAffirm]SETdriver_name=b.driver_name,PictureId=b.PictureId,iJsDoneState=1,iSIncluded=1,iSWages=1,UserId=b.UserId,UserName=b.UserName,AuditTime=b.AuditTime,cExDescription=b.cExDescriptionfrom[表]aleftjoinopenrowset('SQ......
  • 批量更新Postgresql的序列
    序列(sequence)是PostgreSQL中的一种对象,用于生成自动递增的唯一标识符。通常,序列会与表的自增主键一起使用,以确保每个新插入的行都有一个唯一的标识符。在某些情况下,可能需要更新序列的值:从另一个数据库中导入数据,自增列的值也从原来的数据中导入。导入的过程中,目标数据库的序列......
  • 以SQLserver为例的Dapper详细讲解
    Dapper是一种轻量级的ORM(对象关系映射)工具,它提供了高效且易于使用的方式来执行数据库操作。Dapper是由StackOverflow团队开发并维护的,它的主要目标是提供比EF更快、更直接的方式访问数据库。Dapper的主要特点包括:基于纯ADO.NET而不是EF,因此性能更高支持多种数据库,如SQLServer、M......
  • mysql求多列最大值
    1、使用列转行,每一列都转为一行数据,这样,直接比值就可以了。优点:比较常用,可以不用先求出每行或每列的最大值,转换后直接比值即可。缺点:大量使用union,union越多,性能越差,在数据量大的情况下不推荐。selectymd,max(value)from( selectname,oneasvaluefromt unionall s......
  • sqlsever收缩数据库日志操作
    1、备份事务日志--->备份到其他盘;备份类型->事务日志 2、数据库---->数据库收缩---->文件类型:日志 ......