sql server默认端口号为:1433
mysql 默认端口号为:3306
oracle 默认端口号为:1521
目录
SQL 结构化语句分类
SQL 结构化查询语言,是RDBMS的官方操作语言
可以分为四类:DDL\DQL\DML\DCL
DDL:数据定义语言,一般是用来是实现数据库的结构操作。
常用关键字:create\drop\alter\truncate
DQL:数据查询语言,一般是用来查询数据。
常用关键字:select
DML:数据管理语言,是用来管理、操作存储在数据库中的数据的。
常用关键字:insert、delete、update
DCL: 数据控制语言,是用来管理数据库的权限相关的。
常用关键字:grant
系统窗口 输入SQL语句小技巧
一条数据列,当超出当前列会换行;可以把 ";" 替换 "\G"
mysql远程连接权限
在docker上创建mysql之后被外界拒绝访问 查看了docker上的mysql连接并没有什么问题 但就是一直报错,查了半天说是需要外界连接授权 也就是
#这样的一个代码 但是很多人都会发现还是一直报错 说语法有问题
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
查了很久之后看到有说mysql8.0之后其实用的不是这样的sql
create user root@'%' identified by 'root';
grant all privileges on *.* to root@'%' with grant option;
只需要按照步骤执行代码即可!
CREATE USER '用户名'@'host' IDENTIFIED BY '密码';
grant all privileges on *.* to '用户名'@'%' with grant option;
最后记得权限更新
flush privileges;
原文链接:https://blog.csdn.net/weixin_45949736/article/details/126942157
查改 MySQL配置信息
查看版本信息:select version();
查看端口号: show global variables like 'port';
查看用户和主机信息:select user,host from mysql.user;
修改MySQL密码:alter user root@localhost identified by '123456'
下面不支持修改密码
//*方法一 修改密码*/
set password for root@localhost = password(newpwd);
//*方法二 修改密码*/
mysqladmin -uroot -poldpwd password newpwd;
//*方法三 修改密码*/
use mysql;
update user set password=password(‘newpwd') where user='root' and host='localhost';
flush privileges;
增删改库
创建数据库: create database 数据库名;
删除数据库: drop database 数据库名;
切换数据库: use 数据库名;
查看当前数据库:select database();
查看所有数据库:show databases;
重命名数据库名称:(先创建新库,在通过重名表形式迁移表名,在删除旧库)
CREATE DATABASE new_db_name;
RENAME TABLE old_db.table1 TO new_db.table1,old_db.table2 TO new_db.table2;
DROP DATABASE db_name;
增删改字符集
create database T charset 字符集;(gbk、utf8)
修改字符集:set names字符集;(gbk、utf8)
修改字符聚:alter table 表名 default charset =字符集名
增删改查表
创建表: create table T(
字段名1 数据类型1 约束条件 COMMENT '字段注解1',
字段名2 数据类型2 约束约束 COMMENT '字段注解2',
约束条件 (字段名1),
约束条件 (字段名2),
…………)ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='表名注注解';
复制表:1create table 原T like 新T;
2create table 新T select * from 原T;
删除表: drop table T;
查看所有表:show tables;
查看创建表时的语句:show create table T;
修改表名:alter table 旧T rename 新T;
增删改查视图
创建视图:create view 视图名(a,b) as select a,b from ExistTable;
删除视图:drop view 视图名;
修改视图:update 视图名 set
增删改查表结构
增加字段:alter table 表名 add 属性名 数据类型;
增加第一个字段:…… add …… first;
增加某个字段之后:…… add …… after 数据类型;
删除字段:alter table 表名 drop 属性名;
修改属性名:alter table 表名 change 旧属性名 新属性名 新/数据类型
仅修改字段:change 旧属性名 新属性名 数据类型
修改字段和数据类型:change 旧属性名 新属性名 新数据类型
修改数据类型:alter table 表名 modify 属性名 新数据类型
修改存储引擎:alter table 表名 engine=新存储引擎名
查看表结构:describe T; (简写: desc T;)
表新增字段:alter table 表名 add字段 类型 其他;
ALTER TABLE 表名 ADD CONSTRAINT 键名 PRIMARY KEY ( 列名,多个列名用逗号分隔 );
增删改表数据
增:① Insert into T (属性) values (数据);
② Insert into T values (数据)
③ Insert into T(属性) values(数据)
④ Insert into T set 属性1=数据,属性2=数据
⑤ Insert into T select语句
insert into teacher select tid+(select max(tid) from teacher),tname,tage from teacher;
删: delete from T where 条件;(删行记录)
改: update 表名 set 字段名=新值 where 条件;(更新数据)
查: select * from 表名;
查看表中字段注解:show full columns from 表名;
清空表与重置数据
清空表记录(删除数据,不会释放内存,可撤销,执行慢):delete from T;
重置表记录(删除数据,会释放内存,不可撤销,执行快):truncate table T;
增删查表约束条件
增: alter table 表名 add unique(字段名);
删: drop index key_name on T;
查: show keys from 表名;
索引管理
CREATE 索引 INDEX 索引字段 ON table_name
alter方式创建索引:ALTER TABLE tb_name ADD 索引 index 字段;
drop方式删除索引:DROP INDEX <索引名> ON <表名>
alter方式删除索引:ALTER TABLE <表名> DROP INDEX <索引名>
①UNIQUE:唯一索引 ②FULLTEXT:全文索引 ③
建表约束条件以及默认
1、主键约束(Primay Key) 唯一性,非空性
2、唯一约束 (Unique)唯一性,可以空,但只能有一个
3、检查约束 (Check)对该列数据的范围、格式的限制(如:年龄、性别等)
4、默认约束 (Default)该数据的默认值
5、外键约束 (Foreign Key)需要建立两表间的关系并引用主表的列
6、非空 (not
null)
7、评论 (comment)
8、默认值 (default)
9、默认为当前时间 (default
current_timestamp)
10、默认编码 (default
charset=utf8)
各种查询数据知识: