MySQL的学习记录(3.31更新)
0x00 安装及配置
Windows
1.首先官网下载(https://dev.mysql.com/downloads/mysql/)
ps:不想官网下载的可以到文章末尾我分享的链接下载(应该是比较老的版本233)。
2.解压到你想放到的文件夹里,并新建一个文本my.ini,内容如下。
[client]
port=3306
default-character-set=utf8
[mysqld]
#开启查询缓存
explicit_defaults_for_timestamp=true
port=3306
#下面两个目录均为你们自己的安装目录
basedir=F:\大二下\MySQL\mysql-5.7.18-winx64
datadir=F:\大二下\MySQL\mysql-5.7.18-winx64\data
max_connections=500
character-set-server=utf8
default-storage-engine=INNODB
3.设置环境变量
我的电脑-->高级系统设置-->高级-->环境变量
在系统变量里的Path中添加F:\大二下\MySQL\mysql-5.7.18-winx64\bin即可。
4.安装服务
mysqld install //安装
mysqld remove //删除
5.初始化
mysqld --initialize //有初始密码
mysqld --initializeinsecure //无
6.启动服务
net start mysql //启动
net stop mysql //停止
7.修改初始密码
首先打开mysql-->data-->aaaa.err文件,搜索password字符串,可以看到你的初始密码。
mysql -u root -p //以root用户打开mysql,用初始密码登陆
show databases; //提示修改密码
set password = 'abcd1234'; //密码尽量复杂,不然会失败
flush privileges; //刷新权限
至此windows下的mysql就差不多能用了。
Linux-Deepin
安装
参考博客
1.输入以下命令即可,记得设置密码
sudo apt-get install mysql-server
apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
2.检查是否成功
sudo netstat -tap | grep mysql
卸载
参考 博客
1.查看mysql版本
mysql -V
2.卸载
sudo apt-get autoremove--purge mysql-server-5.7 //5.7.18是mysql的版本
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common
0x01 基本操作
参考博客:
#库相关
create database test; //创建数据库
drop database test; //删除数据库
use test; //使用数据库
#表相关
create student(
student_number bigint(20) not null,
name char(10)
); // 创建表
drop table student; //删除表
show tables; //查看数据库存在的所有表名称
desc student; //查看表的组成
show create table student; //查看表的创建过程,可以直接看到是否有主键,外键
#列相关
alter table student add column age int(3); //增加列
alter table student drop column age; //删除列
select * from table_name; //查看表的所有列的内容
#插入,更新,删除数据
insert into student(name, student_number, age)values('root',123456,15);
update student set name = 'me' where student_number = 123456;
#主键相关
primary key (column_name....); //设置主键,需在定义表的时候设置,即在后面添加这句
alter table student add primary key(student_number); //添加主键
alter table student drop primary key; //删除,一个表只有一个主键,故不用指定列名
#外键相关
constraint(foreign_key_name) foreign key(name) references teacher(name);// 设置外键,和主键一样需在定义表的时候设置
alter table table_name Add constraint `foreign_key_name` foreign key(a) References main_tablename(b) ForeignKeyOption;// 添加外键
alter table student drop foreign key foreign_key_name 外键名;// 删除外键
0x02 自己遇到的一些错误及解决方法
ERROR 1045 (28000): Access denied for user 'root'@'localhost'
我是忘了以管理员权限打开cmd ~233
ERROR 1091 (42000): Can't DROP 'teacher_ibfk_1'; check that column/key exists
我一开始是想删除外键,输入
alter table teacher drop teacher_ibfk_1;
后来发现少打了一个foreign key....
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('waijian1') foreign key(student_name) references student(name) on update' at line 1
输入如下:
mysql>alter table teacher add constraint('waijian1') foreign key(student_name) references student(name) on update;
找了贼久的错误没找出来,百度一发发现'waijian1'这玩意不是单引号!!!是反引号[`]
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on delete set null' at line 1
一开始输入如下:
mysql> ALTER TABLE teacher ADD CONSTRAINT `waijian` FOREIGN KEY(student_name) REFERENCES student(name) on update set null on delete set null;
更改之后:
mysql> ALTER TABLE teacher ADD CONSTRAINT `waijian` FOREIGN KEY(student_name) REFERENCES student(name) on update cascade on delete cascade;
//注意,如果你的列定义是设置的not null,那么执行on update set null就会报错
MySQL的学习记录(3.31更新)的更多相关文章
- OpenFlow1.3.3 学习记录(持续更新)
OpenFlow1.3.3 学习记录(持续更新) 正在学习OpenFlow1.3,该篇笔记将日常更新,主要内容大致为官方文档的总结与翻译. 交换机组件 按照优先级顺序进行包匹配,如果匹配到流表项,则执 ...
- MySQL学习记录(不断更新)
MySQL设置数据集为UTF8仍无法输入中文的解决办法: 我们的机器默认为gbk,因此可在进入数据库之前,使用以下这条语句将默认编码改为gbk,注意没有单引号,也不要用分号. mysql -uroot ...
- 从零开始学习Mysql的学习记录
2015/06/18 16:23更新,由于QQ邮件的图片链接失效了,请在云笔记链接查看 http://note.youdao.com/share/?id=f0b2ed30a3fc8e57c381e3d ...
- oracle数据库学习记录(持续更新中...)
--------------------------------------------day1------------------------------------------------- 1. ...
- MySQL巩固学习记录(一)
mysql下载安装 一.采用图形化界面安装 (初期只安装server服务端就可以了,别的不多赘述) 二.采用压缩版安装 1.将文件解压缩到自己想要的路径 2. 添加环境变量,即mysql的bin目录 ...
- mysql的学习记录
1 MySQL -h localhost -u UserName -p Password-h不写,默认为localhost注意:最好先MySQL -h localhost -u UserName -p ...
- mysql/mariadb学习记录——limit
在mysql/mariadb 中可以用limit来限制查询的条数.例子如下: 1.limit后加一个参数 limit n: //选中查询所有结果中的前两条记录并返回 mysql> ; +---- ...
- MySQL索引学习记录
参考资料: http://blog.csdn.net/v_july_v/article/details/6530142http://blog.codinglabs.org/articles/theor ...
- MySQL语句学习记录
注意,命令行下,每条语句最后都需要加分号. 1.显示所有数据库 SHOW DATABASES 2.使用某数据库 如mysql数据库 use mysql (sql语句不区分大小写) 3.显示所有表 ...
随机推荐
- vue全局配置----小白基础篇
今天学习vue全局配置.希望帮助我们去了解vue的全局配置,快速开发. Vue.config是vue的全局配置对象.包含Vue的所有全局属性: silent:boolean(默认值:false)--- ...
- emWin 2天速成实例教程000_如何快速入门ucGUI/emWin
备注:(1)打开工程目录下的"Exe\GUISimulationDebug.exe"即可看到效果.(2)看完教程000-005就基本会用emWin做项目,其他章节可以需要时再参考. ...
- 2016弱校联盟十一专场10.2 Longest Increasing Subsequence
这个dp题很有学问,我也是照着标称写的 还需要学习 补: if(order[i] < order[i-1]) pre[j] += now[j]; 这句的解释 首先order表示的是每个数字排序之 ...
- class-朴素贝叶斯NaiveBayes
1 朴素贝叶斯法的学习与分类1.1 基本原理2 参数估计2.1 极大似然估计2.2 算法2.3 贝叶斯估计 1 朴素贝叶斯法的学习与分类 Naive Bayes是基于贝叶斯定理和特征条件独立的假设的分 ...
- 石子归并 51Nod - 1021
N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价.计算将N堆石子合并成一堆的最小代价. 例如: 1 2 3 4,有 ...
- IDM使用入门
IDM使用入门 Software IDM介绍 基本使用 浏览器集成 选项设置 进阶使用 IDM+百度云外链 IDM介绍 Internet Download Manager(IDM) is a tool ...
- 基于python机器学习人脸自动补全
import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression ...
- spring整合JMS
浏览博客时看到大神写的,直接转载过来收藏了.原文地址:http://elim.iteye.com/blog/1893038
- 【NOI2014】起床困难综合症(贪心)
[NOI2014]起床困难综合症(贪心) 题面 Description 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚 ...
- 【BZOJ1483】【HNOI2009】梦幻布丁(启发式合并,平衡树)
[BZOJ1483][HNOI2009]梦幻布丁 题面 题目描述 N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1 ...