MYSQL数据库1-->mysql语法及DDL,DML,DQL语句

这篇博客介绍了MySQL数据库的基本概念,包括数据库的两种类型、图形化工具如Workbench和Navicat,以及通过TCP/IP协议连接数据库的方法。重点讲解了SQL语言,它是所有关系型数据库的查询规范,分为DDL(数据定义语言)、DML(数据操纵语言)和DQL(数据查询语言)三大类别。在MySQL中,详细阐述了DDL的表操作、数据类型,以及DML和DQL的相关操作。
摘要由CSDN通过智能技术生成

1.数据库的介绍:

  • 存文件 - txt excel
    数据库 - 文件(特定格式),只有数据库软件可以读取
    数据库 - 服务器(软件),可以由客户端访
    两个大类型数据库:
    关系型数据库 - 非关系型数据库 NOSql - Not Only SQL

1.1 标题图形化工具:

  • Workbench - mysql自带
    SqlDeveloper - oracle自带
    Navicat12 ->课后需要使用,需要破解,可以连接所有的数据库
    Sqlyog

1.2标题控制台连接数据库:

		ysql -u用户名 -p密码
		例:
		mysql -uroot -p123456
		
		mysql -hIP地址 -uu用户名 -p密码
		例:
		mysql -h127.0.0.1 -uroot -p123456
		
		mysql --host=IP地址 --user=u用户名 --password=密码
		例:
		mysql --h=127.0.0.1 --u=root --p=123456
		quit或exit # 退出MySQL
  • 计算机基础
  • 用的 TCP/IP协议 ,有三次握手 ,有几层
    用的 TCP/IP协议 ,有三次握手 ,有几层
    服务器端口:
    TCP/IP协议 自行研究
    ip:port ->套接字,确定是一个服务器软件 ,在一个网路上唯一确定一个服务器软件
    ip:确定服务器
    port(端口):确定服务器软件
    域名: 套接字的映射
    DNS:ip地址的集合 ,中转站
    HTTp的默认端口是80;

2.SQL

  • 是一种所有关系型数据库的查询规范,不同的数据库都支持。
  • 通用的数据库操作语言,可以用在不同的数据库中。
  • 不同的数据库 SQL 语句有一些区别 – 称为“方言”。
  • SQL语句 99标准 = 官方语言(统一) + 方言(个性),DB DataBase

2.1.SQL语句语法:

  • 大小写不敏感 ,官方默认大写
  • 每一句sql最后一定要以 ; 结尾,
  • 命名: 表名/字段名 不能使用关键字 order user
  • 字符串: 引号 ‘’

2.2.SQL分类:

  • 分类:
    1.DDL: 管理数据库和表格之间的操作 ,建表,建库
    2.DML: 对表中的记录进行添加,删除,修改
    3.DQL:对表格进行查询 ,Data Query Language
    4.DCL:链接操作 ,对用户的添加,删除,对用户的权限管理

3.mysql数据库:

3.1.DDL操作

查看当前数据库的字符集 charset utf8  latain-改字符集,需要修改配置文件 my.cnf/my.ini
		show variables like '%char%';
		*查看当前所有数据库
		Show databases;
		*创建数据库
		create database java2106;
		*mysql独特写法
		create database if not exists java2106;
		*使用数据库 / 切换数据库(要操作哪个数据库)
		use java2106;
		*删除数据库
		drop database test;
		drop database if exists test;
		*改变数据库字符集
		alter DATABASE java2106 default charset=utf8;
		select 全局函数()
		select now();
  • 操作table, 前提必须切换数据库 use xxx;
    • a.对表进行创建删除修改操作
      b.数据类型:
      1. 字符/字符串: varchar(10)-最大10个字符 char(10)-固定10个字符
      2. 整数: int(2)[mysql] number(2)[oracle]
      3. 小数: double(3,1)-[mysql]最大值99.9 number(3,1)[oracle]
      4. 时间: 年月日date 时分秒timestamp 年月日时分秒datetime
1.创建表 - 确定字段名(), 确定字段类型
			表名全称: java2106.user
			create table if not exists `user` (
				name varchar(20) comment '姓名', -- varchar(20)指的是长度最大20, comment指代字段说明
				age int(2),gender char(1),
				score double(3,1) comment '个人综合评分',
				birthday datetime
				);
			2.查看表结构
			desc user;
			3.查看所有的表
			show tables;
			
			4.显示创建user表的sql语句
			show create table user;
			 
			5.创建一张和user相同的表
			create table user1 like user;
			desc user;

			6.修改表  alter
				6.1 添加新的字段  add
				alter table user add (no int(2));
				6.2 修改原先字段的类型  modify
				alter table user modify name varchar(10);
				6.3 删除字段  drop 
				alter table user drop no;
				6.4 修改字段名  change
				alter table user change gender sex char(1);

			7.重命名表
			rename table user to user2;

			8.删除表
			drop table user2;

3.2.DML 操作

2.1,向表中添加数据
	insert into user1 values('张三', 23, '男', 78.9, '2021-07-13 13:23:45'); -- 值的顺序和字段顺序要一致
	insert into user1 values('张三', 23, '男', 78.9, now());
	insert into user1 values('张三', null, '男', 78.9, null);
	values值的个数和顺序必须跟前面括号中的字段顺序一致
	insert into user1(name, score, gender) values('张三', 78.9, '男');

	*mysql可以一次性添加多个记录
	insert into user1 values('lucy', null, '男', 78.9, null),
							('tom', 18, '男', 78.9, null),
							('jack', 23, '男', 78.9, null),
							('rose', 45, '女', 78.9, null),
							('david', 32, '男', 78.9, null);

2.2.修改数据
	update user1 set name = 'jerry'; -- 修改所有数据
	update user1 set name = 'jerry' where name='张三'; -- name=张三的才要修改(条件)
	update user1 set age = 19, birthday=now() where name='lucy';

2.3.删除数据
	delete from user1 ; -- 删除全部记录
	delete from user1 where name='jerry';
	truncate user1; -- 删除全部

	SET SQL_SAFE_UPDATES = 0; 

3.3.DQL操作

3.1单表查询 select 
	查询全部
	select * from user; -- * 在执行时会解析成字段名,消耗资源
	查询指定字段
	select name ,ege from user;
	*查询的字段可以直接计算, 字段起别名[as] 
	select name, sal*12 as salary from emp;
	select name, sal*12 salary from emp;
	
	*查询的字段可以使用函数来操作
	*函数: 数字相关, 字符串相关, 时间相关
	select ename, date_format(hiredate, '%Y年%m月%d日') from emp;

	SELECT DATE_FORMAT(now(), '%Y年%m月%d日');

	*条件查询: 筛选 where
	*查询薪资范围 > < >= <= = !=[<>]
	select ename, sal from emp
	 where sal > 2000;
	*条件 并且:and  或者:or
	select ename, sal from emp where sal > 2000 and sal < 3000;
	select ename, sal from emp where sal < 2000 or sal > 3000;
	sal>=2000 and sal<=3000
	select ename, sal from emp where sal between 2000 and 3000;
	* null 表示无穷大或者无穷小, 不能判断范围, 也不能计算
	is null -nullis not null - 不是nullselect ename from emp where mgr is null;

	不在2030的人
	select ename, deptno from emp where deptno = 20 or deptno=30;
	select ename, deptno from emp where deptno not in (20,30);

	*名字长度>4的人 - 函数结果可以作为条件
	select ename from emp where length(ename) > 5;

	*名字是 SMITH 的人
	select ename from emp where ename = 'SMITH';
	*首字母是 S 的人 like-模糊查询
	* %(任意字符任意长度)  _(一个任意字符)
	select ename from emp where ename like 'S%';
	select ename from emp where ename like '_A%';
	select ename from emp where ename like '%A%';
	-- ESCAPE '*'  转义
	SELECT ENAME FROM EMP WHERE ENAME LIKE 'A*_SMITH' ESCAPE '*';

	sal > 2000,3000,4000中的任意一个值
	select ename, sal from emp where sal > any(2000,3000,4000);
	sal > 2000,3000,4000中的每一个值
	select ename, sal from emp where sal > every(2000,3000,4000);

4.总结mysql语句:

DDL:
	show databases;
	show variables like '%char%';
	alter DATABASE java2106  default charset=utf8;
	create database;
	create database if not exists;
	use database;
	drop database  数据库名;
	drop database if exists;
			create table 表名 (
					[字段名]      [字段名类型]       [权限][字段名]      [字段名类型]       [权限].
						);
	create table 表名1 like 表名2
	rename table 表名 to  新的表名;
	drop table  表名;
	desc 表名 ;
	show tables;
	对表格进行修改:alter    一个表格名:user
			alter   table user  add 字段名  字段类型;
			alter   table user modify  字段名  新的字段类型;
			alter   table user drop 字段名;
			alter   table  user change 字段名  新的字段名 字段名类型;
DML:     对数据库的记录操作增删改   ,一个表格名:user
		insert into user  values();
		insert into user()  values();
		insert into user  values(),(),(), ... ,();
		delete from user ;
		delete from user where 条件语句;
		truncate user ;
		updata user set  字段名=数据;
		updata user set  字段名=数据  where  条件语句;
		
DQL:对表中的查询操作
		select* from user ;
  • 励志
    你每次的努力都是为了遇见更好的自己。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值