安装数据库出现问题:
mysql安装到最后一步无响应的问题超简单最有效解决
mysql安装基本管理
1.如何安装Mysql
2.安装window服务
mysqld --install
mysqld --remove
net start mysql
net stop mysql
3.破解密码
跳过授权表来开启服务器
mysqld --skip-grant-tables
4.统一字符编码
my.ini 配置文件
[mysqld]
# 设置mysql的安装目录 **后面的路径一定是安装sql的目录(自己电脑的)**
basedir=C:\mysql-5.7.22-winx64\mysql-5.7.22-winx64
# 设置mysql数据库的数据的存放目录,必须是data
datadir=C:\mysql-5.7.22-winx64\mysql-5.7.22-winx64\data
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# mysql端口
port=3306
# 字符集
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
\s;
5.创建用户
create user 'xxxx'@'%' indentified by '123'
授权
grant 这个权限 只有root有
grant all privileges on *.* to "xxxx"@'%';
revoke all privileges on *.* from 'xxx'@'%';
6.sql命令
select user();
查看所有的数据库
show databases;
创建数据库
create database db1;
create table t1(id int,name char(10));
engine=innodb
sql语言 是强类型
insert into t1(id,name) values(1,'alex'),(2,'wusir');
数据库
数据库 是一个可以在一台机器上独立工作的,并且可以给我们提供高效、便捷的方式对数据进行增删改查的一种工具。
优点:保持数据的统一,增强并发,增加使用效率
数据库服务器、数据管理系统、数据库、表与记录的关系(重点)
数据库服务器-:运行数据库管理软件
数据库管理软件:管理-数据库
数据库:即文件夹,用来组织文件/表
表:即文件,用来存放多行内容/多条记录
mysql服务端
- server端开启
- 解析指令
- 对文件夹,文件,数据增删改查
mysql客户端
- 连接s端
- 发送指令(sql语句)
sql语句
- 操作文件夹(库)
增:create database db1 charset utf8;
查:show databases;
改:alter database db1 charset latin1;
删除: drop database db1- 操作文件(表)
先切换到文件夹下:use db1
增:create table t1(id int,name char);
查:show tables;
改:alter table t1 modify name char(3);
alter table t1 change name name1 char(2);
删:drop table t1;- 操作文件中的内容(记录)
增:insert into t1 values(1,‘egon1’),(2,‘egon2’),(3,‘egon3’);
查:select * from t1;
改:update t1 set name=‘sb’ where id=2;
删:delete from t1 where id=1;
清空表:
delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
truncate table t1;数据量大,删除速度比上一条快,且直接从零开始,
*auto_increment 表示:自增
*primary key 表示:约束(不能重复且不能为空);加速查找
sql表操作
创建列表语法:
create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
);
查看表结构有两种方式:
describe [tablename];这种方法和desc [tablename];效果相同;可以查看当前的表结构
mysql支持的数据类型:
- 数值类型
#创建表一个是默认宽度的int,一个是指定宽度的int(5)
create table t1 (id1 int,id2 int(5));
#创建表的三个字段分别为float,double和decimal参数表示一共显示5位,小数部分占2位
create table t2 (id1 float(5,2),id2 double(5,2),id3 decimal(5,2));
- 日期和时间类型
- 字符串类型
- ENUM和SET类型
表的完整性约束
约束条件与数据类型的宽度一样,都是可选参数,主要分为以下几种:
NOT NULL :非空约束,指定某列不能为空;
UNIQUE : 唯一约束,指定某列或者几列组合不能重复
PRIMARY KEY :主键,指定该列的值可以唯一地标识该列记录
FOREIGN KEY :外键,指定该行记录从属于主表中的一条记录,主要用于参照完整性
修改表结构
- 修改表名
ALTER TABLE 表名
RENAME 新表名;- 增加字段
ALTER TABLE 表名
ADD 字段名 数据类型 [完整性约束条件…],
ADD 字段名 数据类型 [完整性约束条件…];- 删除字段
ALTER TABLE 表名
DROP 字段名;- 修改字段
ALTER TABLE 表名
MODIFY 字段名 数据类型 [完整性约束条件…];
ALTER TABLE 表名
CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
ALTER TABLE 表名
CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];
5.修改字段排列顺序/在增加的时候指定字段位置
ALTER TABLE 表名
ADD 字段名 数据类型 [完整性约束条件…] FIRST;
ALTER TABLE 表名
ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名;
ALTER TABLE 表名
CHANGE 字段名 旧字段名 新字段名 新数据类型 [完整性约束条件…] FIRST;
ALTER TABLE 表名
MODIFY 字段名 数据类型 [完整性约束条件…] AFTER 字段名;
删除表
DROP TABLE 表名;