MySQL--Navicat的破解安装,datagrip破解与安装,SQL语句分类

MySQL

1. SQL语句

structured  query language  结构化查出语言。
使用特定的SQL操作DBMS里面的数据库以及表以及表数据。
SQL的分类:
  1. DDL 数据定义语言  
      创建库/CREATE
      删除库/DROP
      修改表结构  ALTER
      清空表数据  TRUNCATE
  2. DML 数据操作语言(所有更新操作)
       新增  INSERT
       修改  UPDATE
       删除  DELETE
  3. DQL 数据查询语言
        查询 SELECT (最难的)
  4. DCL 数据控制语言
        系统用户
        用户授权 GRANT 
  5. TCL 事务控制语言(存储引擎必须是InnoDB)
        begin commit rollback

2. DDL

2.1 操作库

所有的自己起名字的都称为是"标识符" 不要使用中文,在mysql里面 有多个英文单词 使用_连接

-- 1. 创建数据库(数据库一旦创建,名称无法修改)
CREATE  DATABASE [IF NOT EXISTS] 数据库名称;
mysql> create database mydb;

-- 2.查看创建数据库的详细信息  utf8mb4 
mysql> SHOW CREATE DATABASE mydb;
-------------+
| Database | Create Database                                                                                                                |
+----------+--------------------------------------------------------------------------------------------------------------------------------+
| mydb     | CREATE DATABASE `mydb` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+--------------------------------------------------------------------------------------------------------------------------------+

mysql> drop database mydb; -- 删除数据库 (库下所有的表以及数据全部删除)

2.2 操作表

-- 1.1 创建表
-- 表名  t_xxx  tb_xxx  student_info  product  tb_sys_user
CREATE TABLE [IF NOT EXISTS] 表名(
  列名1  数据类型  [约束],
  列名2  数据类型  [约束],
  .....
  列名n  数据类型  [约束]  
);

-- 需求: 存储用户信息
-- 严格规范: 一张表中  必不可少的3个字段   id  create_time update_time
CREATE TABLE sys_user(
   id int unsigned zerofill,
   true_name varchar(255),
   nick_name varchar(30),
   age tinyint(2) unsigned,
   gender tinyint(1),
   phone char(11),
   user_image  varchar(255),
   balance decimal(10,4),
   birthday date, 
   create_time datetime,
   update_time datetime   
);

-- 2. 删除表
mysql> DROP TABLE sys_user;

-- 3.修改表结构 ALTER
-- 修改表名 重命名   rename
mysql> ALTER TABLE sys_user RENAME tb_sys_user;
-- 新增新的列
mysql> ALTER TABLE sys_user ADD address varchar(100);
-- 删除指定的列
mysql> ALTER TABLE sys_user DROP address;
-- 修改列名
mysql> ALTER TABLE sys_user CHANGE age user_age tinyint unsigned;
-- 修改列的数据类型
mysql> ALTER TABLE sys_user CHANGE user_age user_age int  unsigned;
mysql> ALTER TABLE sys_user MODIFY user_age tinyint(3);

-- 4.清空表数据
mysql> TRUNCATE TABLE sys_user;
假设表10条记录: 对于TRUNCATE而言,先drop table ,然后再create table,性能高。
弊端: 属于DDL语句,数据不能回滚。与事务无关。

3.数据类型

掌握MySQL常用的数据类型: (维护各式各样的数据)

3.1 整数类型

-- m限定列宽  tinyint(2)  100 -101
tinyint(m)--->byte  -128-127
tinyint(m) unsigned 0-255
tinyint(1)-----> 0 false  1 true  boolean

  年龄  性别 
  
int(m)---->  int(3)  -1000000   等价于int  Integer
bigint(m)----> 等于  long
编号(id),  时间毫秒数(bigint)

int(5) zerofill  1000383  00123

3.2 浮点类型

m:限制小数总位数(.之前与之后的位数和)
n:限制.之后的位数
float(m,n)   java语言float
double(m,n)  java语言double
decimal(m,n) 维护余额。java语言BigDecimal

decimal(8,3) 99999.9994

3.3 字符串类型

m: 限定存储的字符个数。  "String"
char(m)----> 定长
varchar(m)--->可变长

char(3)  'ab_'  查询的时候 trim (去除左右2端的空格) 再展示
"手机号码" 
varchar(3) 'ab' 存储2个字符   使用最多 
"姓名"

text
longtext

3.4 日期类型

date: 维护的是年月日  2020-01-01   对应的java.util.Date  或者的 java.time.LocalDate
datetime: 维护的是年月日 时分秒  2020-01-01 13:00:00  
          对应的java.util.Date 或者的 java.time.LocalDateTime
          
          使用最多
timestamp: 维护的是年月日 时分秒   2038  不用。

year(2/4) 2024  

4. 可视化客户端

1.navicat16 
2.datagrip
3.sqlyog----> 只能连接mysql    

4.1 navicat安装与破解

链接:https://pan.baidu.com/s/1crkT9AO6fDY1SpOWgme5gw?pwd=1210
提取码:1210

4.2 DataGrip安装与破解

链接:https://pan.baidu.com/s/1g4YTFtCbPrL_vFtzLToYWg?pwd=1210
提取码:1210

5.DML

5.1 INSERT

1条或者多条记录受影响。一般一次新增1行记录。

-- 新增的语法
-- 1. 新增: 对所有的列赋值
-- INSERT INTO 表名 VALUES (数据1,...,数据n);

-- INSERT INTO sys_user VALUES (1001,'张三','zhangsan',20,1,'110','/user/a.jpg',1000,'2000-01-01','2024-01-17 14:00:00',NULL);
-- INSERT INTO sys_user VALUES (1002,'张三','zhangsan',20,1,'110','/user/a.jpg',1000,'2000-01-01','2024-01-17 14:00:00',NULL);
-- INSERT INTO sys_user VALUES (1003,'张三','zhangsan',20,1,'110','/user/a.jpg',1000,'2000-01-01','2024-01-17 14:00:00',NULL);
-- INSERT INTO sys_user VALUES (1004,'张三','zhangsan',20,1,'110','/user/a.jpg',1000,'2000-01-01','2024-01-17 14:00:00',NULL);
-- INSERT INTO sys_user VALUES (1005,'张三','zhangsan',20,1,'110','/user/a.jpg',1000,'2000-01-01','2024-01-17 14:00:00',NULL);
-- INSERT INTO sys_user VALUES (1006,'张三','zhangsan',20,1,'110','/user/a.jpg',1000,'2000-01-01','2024-01-17 14:00:00',NULL);
-- 获得当前此刻时间
-- SELECT NOW(),SYSDATE(),CURRENT_TIMESTAMP();

-- INSERT INTO sys_user VALUES (1009,'王文英','zhangsan',10,0,'110','/user/a.jpg',1000,'2000-01-01',NOW(),NULL); 
-- ALTER TABLE sys_user MODIFY id int UNSIGNED;
-- 2. 新增--指定具体的列进行新增(最常用的)
-- INSERT INTO 表名 (列名1,...,列名n) VALUES (数据1,...,数据n);
INSERT INTO sys_user (id,true_name,user_age,phone,create_time) VALUES (1,'aaa',20,'21727',NOW());
INSERT INTO sys_user (id,true_name,user_age,phone,create_time) VALUES (2,'bbb',20,'21727',SYSDATE());
INSERT INTO sys_user (id,true_name,user_age,phone,create_time) VALUES (3,'ccc',20,'21727',CURRENT_TIMESTAMP());
-- 3. 批处理---> 一次新增多条
-- INSERT INTO 表名 VALUES (数据1,...,数据n),(数据1,...,数据n),(数据1,...,数据n)....
-- INSERT INTO sys_user VALUES (10,'张三1','zhangsan',20,1,'110','/user/a.jpg',1000,'2000-01-01','2024-01-17 14:00:00',NULL),(11,'张三2','zhangsan',20,1,'110','/user/a.jpg',1000,'2000-01-01','2024-01-17 14:00:00',NULL);
-- INSERT INTO 表名 (列名1,...,列名n) VALUES (数据1,...,数据n),(数据1,...,数据n),....;
INSERT INTO sys_user (id,true_name,user_age,phone,create_time) VALUES 
(131,'aaa1',20,'21727',NOW()),(132,'aaa2',20,'21727',NOW()),(133,'aaa3',20,'21727',NOW());

5.2 DELETE

先查询

删除所有 批量删除 删除1个

-- DELETE
-- 语法:
-- DELETE FROM 表名;  -- 清空所有
-- DELETE FROM 表名 [WHERE 条件(与列的数据) and or ]; -- 删除满足条件的记录
-- 需求1: 删除id=1001的用户
-- DELETE FROM sys_user WHERE id=1001;
-- 需求2: 删除id=1002 1003 1004的用户
-- DELETE FROM sys_user WHERE id=1002 OR id=1003 OR id=1004;
-- DELETE FROM sys_user WHERE id IN (1005,1006,1007);
-- 需求2: nick_name=zhangsan  id=1
-- DELETE FROM sys_user WHERE nick_name='zhangsan' OR id=1;
-- DELETE FROM sys_user; -- 遍历式删除  数据量大的情况下  性能低  相比较truncate
-- TRUNCATE TABLE sys_user; -- drop table  create table

5.3 UPDATE

先查询 在查询的状态下 执行删除/修改。 记录肯定是存在的

一次修改一行。

-- UPDATE(对指定的列赋予新的数据 赋值 set)
-- UPDATE 表名 SET 列名1=新数据1,...,列名n=新数据n;  修改表的所有的记录
-- UPDATE 表名 SET 列名1=新数据1,...,列名n=新数据n WHERE 条件; 
-- UPDATE sys_user SET gender=0,balance=2000,true_name='张三丰';
-- 根据id修改
UPDATE sys_user SET true_name='张三',user_age=30,balance=3000,update_time=NOW() WHERE id=131;
-- 使用DDL: 创建员工表 部门表 学生表 成绩表  商品表  商品类型表
-- 使用DML语句完成数据操作

create table




## 5.3 UPDATE

> 先查询  在查询的状态下 执行删除/修改。 记录肯定是存在的

> 一次修改一行。

```sql
-- UPDATE(对指定的列赋予新的数据 赋值 set)
-- UPDATE 表名 SET 列名1=新数据1,...,列名n=新数据n;  修改表的所有的记录
-- UPDATE 表名 SET 列名1=新数据1,...,列名n=新数据n WHERE 条件; 
-- UPDATE sys_user SET gender=0,balance=2000,true_name='张三丰';
-- 根据id修改
UPDATE sys_user 
T true_name='张三',user_age=30,balance=3000,update_time=NOW() WHERE id=131;

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拨云见日_c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值