当前位置: 代码迷 >> MySQL >> 初学者的MySQL学习笔记(一)
  详细解决方案

初学者的MySQL学习笔记(一)

热度:551   发布时间:2016-05-05 16:18:42.0
菜鸟的MySQL学习笔记(一)

本学习笔记是照搬慕课网《与MySQL的零距离接触》内容,特此感谢!

1-1 mysql的安装与配置
Windows环境下的MSI安装:
1、安装:
双击MSI文件->用户协议->选择Typical(典型安装)->instal->finish;
2、配置:
配置向导文件(C\\pf\\Mysql\mysqlsever\bin下的mysqlinstaceconfig.exe)->detailed(详细)或者(standard标准)->勾选windows服务和环境变量选项->设置root用户和密码->执行配置选项。
3、mysql的目录结构:
bin目录            存储可执行文件
data目录          存储数据文件
docs                 文档
include目录     存储包含的头文件
lib目录              存储库文件
share                错误消息和字符集文件
1-2启动和关闭mysql服务
1、计算机服务启动和关闭:
net start mysql;
net stop mysql; 
net restart mysql;
2、使用mysql
登录:
MySQL -D(--database=name 打开指定数据库)--delimiter=name (指定分隔符) -h(--host=name  服务器名称)-p (--password[=name]密码)-P(--Port=端口) --prompt=name(设置提示符) -u(--user=name 用户名)-V (--versiom 版本信息)
#MySQL -uroot -p -P3306 -h172.1.1.200 
退出:
MySQL>exit;或者quit;或者\q;
修改MySQL提示符:
连接客户端时: shell>mysql -uroot -proot --prompt 提示符
连上客户端时: MySQL>prompt 提示符
修改说明:  \D  完整的日期 \d 当前数据库 \h 服务器名称 \u 当前用户
#MySQL>PROMPT '\u@\h \d'  [email protected](库名)>
1-3MySQL常用命令
查看版本号: SELECT VERSION();
显示当前日期: SELECT NOW();
显示当前用户 :SELECT USER();
MySQL语句规范:
①关键字和函数名称全部大写;
②数据库名、表名称、字段名称全部用小写;
③sql语句必须以分号结尾。
创建数据库:
 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name
#CREATE DATABASE test_usr;
查看数据库:
 SHOW {DATABASES | SCHEMAS} [LIKE 'pattern' | WHERE expr]
#SHOW test_usr;
修改数据库:
ALTER {DATABASE | SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name;
#修改数据库编码方式 ALTER DATABASE test_usr CHARACTER SET = utf8;
删除数据库:
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;
{}符号为二选一 []符号为可选可不选
 
2-1数据类型与数据表的操作
数据类型是指数据列、存储过程参数、表达式和局部变量的数据特征,觉得了数据的存储格式,代表了不同的数据类型。
整型:
TINNYINT         (有符号位:-128到127 无符号位: 0到255)
SMALLINT       (有符号位 -32768到32767 无符号位0到65536)
MEDIUMINT   (有符号位:-2的23次方到2的23次方-1)
INT                   (有符号位:-2的31次方到2的31次方-1 无符号位:0到2的32次方-1)
BIGINT             (有:-2的63位 到2的63位-1 无:2的64位-1)
浮点型:
FLOAT[(M.D)]    M是数字的总位数,D是小数点后面的位数。单精度精确大约到7位小数。 
DOUBLE[(M,D)]
日期时间型:
YEAR                   1(存储需求)
TIME                   3
DATE                  3
DATETIME          8
TIMESTAMP       4
字符型:
CHAR(M)               M个字节,0<=M<=255
VARCHAR(M)        L+1个字节,其中L<=M 且0<=M<=65535
TINYTEXT               L+1个字节,其中L<2的八次方
TEXT                       L+2个字节,其中L<2的16次方
MEDIUMTEXT        L+3个字节,其中L<2的24次方
LONGTEXT              L+4个字节,其中L<2的32次方
ENUM('value1','value2'...)        1或2个字节,取决于枚举值的个数,最多65535个值
SET('value1','value2'...)             1/2/3/4或8个字节,取决于set成员的数目,最多64个成员
2-2 数据表的操作
打开数据库:
 USE +库名称;   如,USE test-user;
查看数据库:
 SHOW DATABASE;
查看打开的数据库:
 SELECT DATEBASE();
创建数据表:
CREATE TABLE [IF NOT EXISTS] table_name (column_name data_type,...);
#CREATE TABLE tb1(
username VACHAR(20),
age  TINYINT UNSIGNED, 
salary FLOAT(8,2) UNSIGNED);
创建了一个包含名称 年龄 收入的表
查看数据表:
SHOW TABLES [FROM db_name] [LIKE 'pattern'|WHERE expr]
查看数据表的结构:
SHOW COLUMNS FROM tbl_name;
插入数据(写入记录):
INSERT [INTO] tbl_name [(col_name,...)] VALUES(val,...);
#INSERT tbl VALUES ('Tom',25,7886.34);        #与表字段完全匹配的数据
INSERT tb1(username,salary) VALUES('Jon',4443);   #指定列插入数据(限制为未插入位置允许空值)
查找记录:
SELECT expr,... FROM tbl_name;
2-3修改数据表:
添加单列:
ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]
添加多列:
ALTER TABLE tbl_name ADD [COLUMN] (col_name colum_definition,...)
删除列:
ALTER TABLE tbl_name DROP [COLUMN] col_name
添加主键约束:
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_tye] (index_col_name,...)
添加唯一约束:
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...)
添加外键约束:
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) reference_definition
添加/删除默认约束:
ALTER TABLE tbl_name ALTRT [COLUMN] col_name {SET DEFAULT literal |DROP DEFAULT}
删除主键约束:
ALTER TABLE tbl_name DROP PRIMARY KEY 
删除唯一约束:
ALTER TABLE tbl_name DROP {INDEX | KEY} index_name
删除外键约束:
ALTET TABLE tbl_name DROP FOREIGN KEY fk_symbol
修改列定义:
ALTER TABLE tbl_name MODIFY [COLUMN ] col_name column_definition   [FIRST|AFTER col_name]
修改列名称:
ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name]
修改数据表名
方法1:ALTER TABLE tbl_name RENAME [TO|AS] new_tbl_name
方法2:RENAME TABLE tbl_name TO new_tbl_name [,tbl_name2 TO new_tbl_name2] ...
  相关解决方案