MySQL的学习记录

windows下启动MySQL服务:
用管理员打开CMD,
输入net start mysql启动服务
输入net stop mysql停止服务
备注:以上命令同样适应于管理其它服务。

mysql的登陆与退出
登陆:
C:\WINDOWS\system32>mysql -uroot -p -P3306 -h127.0.0.1

C:\WINDOWS\system32>mysql -uroot -p
退出:
mysql > exit;
mysql > quit;
mysql > \q;

常用命令
SELECT VERSION();//显示当前服务器版本
SELECT NOW();//显示当前日期时间
SELECT USER();//显示当前用户

SELECT DATABASE();

USE db_name; //打开数据库


Paste_Image.png
Paste_Image.png

创建数据库:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name

查看创建的数据库的信息:
CREATE DATABASE db_name;

Paste_Image.png

修改数据库
ALTER {DATABASE | SCHEMA} [db_name]
[DEFAULT] CHARACTER SET [=] charset_name;

Paste_Image.png

删除数据库
DROP {DATABASE | SCEMA} [IF EXISTS] db_name;

Paste_Image.png
Paste_Image.png

查看当前服务器下的数据表列表
SHOW {DATABASES | SCHEMAS}
[LIKE 'pattern' | WHERE expr]

查看警告信息:SHOW WARNINGS;

Paste_Image.png

创建数据表
CREATE TABLE [IF NOT EXISTS] table_name(
column_name data_type,
......
);

Paste_Image.png

语句规范
1、关键字与函数名称全部要大写;
2、数据库名称、表名称、字段名称全部要小写;
3、SQL语句必须以分号结尾。

Paste_Image.png
Paste_Image.png

命令介绍:
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (?) Synonym for `help'.
clear (\c) Clear the current input statement.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
notee (\t) Don't write into outfile.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (#) Rebuild completion hash.
source (.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.

primary key不一定与autoincrement一起使用,但autoincrement必须与primary key一起使用。
创建数据表举例:
CREATE TABLE tabelname (
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,username VARCHAR(20) NOT NULL UNIQUE KEY,sex ENUM('1','2','3') DEFAULT '3'
);

Paste_Image.png

查看数据表
SHOW TABLES [FROM db_name]
[LIKE 'pattern' | WHERE expr]
备注:不加[FROM db_name],则查看当前数据库的数据表
查看数据表结构
SHOW COLUMNS FROM table_name;

Paste_Image.png

插入记录
INSERT [INTO] table_name [(col_name,...)] VALUES(val,...);
如:INSERT tablename(username,sex) VALUES('tom','2');

Paste_Image.png

查找记录
SELECT expr,... FROM table_name;
如:SELECT * FROM tb1;

Paste_Image.png

Paste_Image.png

备注: PRIMARY KEY 指定为主键,AUTO_INCREMENT自增长。
NOT NULL 不能为空,
UNIQUE KEY唯一约束,
DEFAULT 指定默认值。

Paste_Image.png
Paste_Image.png

数据类型

Paste_Image.png

Paste_Image.png
Paste_Image.png

**空值 与 非空
NULL 字段可以为空
NOT NULL 字段不可以为空
主键 与 自动编号
主键:PRIMARY KEY,主键约束,每张数据表只能有一个主键,保证记录的唯一性,自动为NOT NULL。
自动编号:AUTO_INCREMENT, 必须与主键组合使用,默认情况下,起始值为1,增量为1。

唯一约束 UNIQE KEY

Paste_Image.png

默认约束 DEFAULT
当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。

Paste_Image.png

约束

Paste_Image.png
Paste_Image.png

外键约束 FOREIGN KEYp
作用:保持数据的一致性,完整性;实现一对一或一对多的关系。
数据表从存储引擎,修改my.ini文件中default-storage-engine=INNODB
外键约束的要求:

Paste_Image.png
Paste_Image.png
Paste_Image.png

查看参照列或外键列是否存在索引:
SHOW INDEXES FROM table_name;


Paste_Image.png

以网格的形式呈现(加上\G):
SHOW INDEXES FROM table_name\G;


Paste_Image.png

3.3 外键约束的参照操作

Paste_Image.png

删除记录:DELETE FROM table_name WHERE 条件

数据表的修改

  • 添加单列
    ALTER TABLE table_name [COLUMN] column_name column_definition [FIRST | AFTER column_name]
    如:ALTER TABLE users ADD age TINYINT UNSIGNED NOT NULL AFTER username;//添加age列到username列后面


    Paste_Image.png
  • 添加多列
    ALTER TABLE table_name [COLUMN] (col_name column_definition,...)//添加多列时,只能添加的末尾


    Paste_Image.png
  • 删除列
    ALTER TABLE table_name DROP [COLUMN] col_name;// 删除单列
    ALTER TABLE table_name DROP [COLUMN] col_name,DROP [COLUMN] col_name...// 删除多列
    备注:添加和删除列可以同时操作,操作间用“,”分隔,如:
    ALTER TABLE users DROP username,ADD _id SMALLINT UNSIGNED NOT NULL;
  • 添加主键约束
Paste_Image.png
  • 添加唯一约束
Paste_Image.png
  • 添加/删除默认约束
Paste_Image.png
  • 删除主键约束
Paste_Image.png
  • 删除外键约束

  • 修改列定义

Paste_Image.png
  • 修改列名称
Paste_Image.png
  • 数据表更名
Paste_Image.png
  • 小结


    Paste_Image.png

操作数据表中的记录

可以插入表达式、函数、值


Paste_Image.png

备注:为自动编号赋值可以为NULL,也可以为DEFAULT;省略了列,所有的列必须依次赋值。

Paste_Image.png
Paste_Image.png

(这种方法,只能一次插入一条语句)

Paste_Image.png

更新记录UPDATE

Paste_Image.png

注意:省略条件WHERE将更新所有的记录

Paste_Image.png

如:UPDATE users SET age = age - id, sex = 0;//将更新所有记录,可以更新一个字段,也可以更新多个字段,用“,”分隔。

删除记录

Paste_Image.png

如:DELETE FROM users WHERE id = 6;

查找记录

Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png

WHERE 条件表达式

Paste_Image.png

GROUP BY查询记过分组

Paste_Image.png
Paste_Image.png

ORDER BY对查询结果进行排序

Paste_Image.png
Paste_Image.png

LIMIT 限制查询结果返回的数量

Paste_Image.png

拓展资料:21分钟 MySQL 入门教程 http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SQL SELECT 语句 一、查询SQL SELECT 语法 (1)SELECT 列名称 FROM 表名称 (2...
    有钱且幸福阅读 5,704评论 0 33
  • 1、MySQL启动和关闭(安装及配置请参照百度经验,这里不再记录。MySQL默认端口号:3306;默认数据类型格式...
    强壮de西兰花阅读 677评论 0 1
  • 20170623睡前打卡仪式:我今天想明白了一个道理 对干货知识的学习一定要遵循少而精的原则。少即是多,慢才是快。...
    跟娟姐学蜕变阅读 339评论 0 0
  • 我今年二十岁,如果你要问我至今我最后悔没早买的东西是什么,我会举起手中的kindle,毫不犹豫的回答说:就是它。 ...
    尾生斯基阅读 2,771评论 24 29