zoukankan      html  css  js  c++  java
  • mysql入门

    1、MySQQL由瑞典MySQL AB 公司开发,目前属于Oracle公司;
    2、MySQL是开源的免费的;
    3、启动MySQL服务: net start mysql(管理员:命令提示符);
    4、关闭MySQL服务:net stop mysql;
    5、MySQL登陆:mysql -uroot -p
    参数                        描述
    -D, --database=name         代开指定数据库
    --delimiter=name            指定分隔符
    -h, --host=name             服务器名称
    -p, --password[=name]       密码


    6、MySQL退出:exit;  quit; q;
    7、按键盘的上下键进行键盘翻越;
    8、修改Mysql提示符:
    连接客户端时通过参数指定;
    shell>mysql -uroot -proot --prompt 提示符

    链接上客户端后,同过prompt命令修改
    mysql>prompt 提示符
    9、MySQL常用命令:
    显示当前服务器版本; SELECT VERSION();
    显示当前日期时间: SELECT NOW();
    显示当前用户: SELECT USER();
    SQL语句必须以分号结尾;
    10、创建数据库:{}必选的;| 做选择;[]可选;
    CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name
    11、查看当前服务器下的数据列表:
    SHOW {DATABASES|SCHEMAS} [LIKE 'pattern'| WHERE expr]
    12、修改数据库:
    ALTER {DATABASE|SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name;
    13、删除数据库:
    DROP {DATABASE|SCHEMA} [IF EXISTS] db_name
    14、MySQL默认的端口号:3306 ,超级用户是:root
    15、数据类型:
    数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。
    16、整形:TINYINT(-128--127),SMALLINT(-32768--32767,无符号:0--16777215),
    MEDIUMINT(-83388608--8388607,无符号:0--16777215),INT(更大),BIGINT(巨大)
    17、浮点型:FLOAT[(M,D)] < DOUBLE[(M,D)] ;M是数字总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点精确到大约7位小数位。
    18、日期实际型:YEAR/TIME/DATE/DATETIME/TIMESTAMP
    19、字符型:CHAR(M):M个字节; VARCHAR(M):L+1个字节,其中L<=M且0<=M<=6355;TINYTEXT;TEXT;MEDIUMTEXT;LONGTEXT;ENUM('value1','value2',...);SET('value1','value2'...)
    20、USE : 打开数据库:USE database_name;  select database():显示当前的数据库;
    21、创建数据表:
    CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type, ... )
    例子:mysql>CREATE TABLE tb1(username VARCHAR(20),age TINYINT UNSIGNED,salary FLOAT(8,2) UNSIGNED);
    22、查看数据表:SHOW TABLES
    查看数据表列表:SHOW TABLES [FROM db_name] [LIKE 'pattern'|WHERE expr];
    查看数据表结构:SHOW COLUMNS FROM tbl_name;
    23、MySQL记录的插入与查找:INSERT
    插入记录:INSERT [INTO] tb_name [(col_name,...)] VALUES(val,...)
    如:mysql>INSERT tbl(username,salary) VALUES ('John',4500.69);或者:INSERT tb1 VALUES('Tom',6660.55);
    24、SELECT:记录查找:SELECT expr,... FROM tb1_name;
    如:mysql>SELECT * FROM tb1_name;
    25、空值与非空;
    NULL,字段值可以为空; NOT NULL ,字段值禁止为空:
    例如:mysql>CREATE TABLE tb2(username VARCHAR(20) NOT NULL, age TINYINT UNSIGNET NULL);
    mysql>INSERT tb2 VALUES('Tom',NULL);
    mysql>INSERT tb2 VALUES(NULL,26);
    26、AUTO_INCREMENT:
    自动编号,且必须与住建组合使用;默认情况下,起始值为1,每次的增量为1;
    例:mysql>CREATE TABLE tb3(id SMALLINT UNSIGNED AUTO_INCREMENT,username VARCHAR(30) NOT NULL);不能创建成功 X;
    27、PRIMARY KEY
    主键约束;每张数据表只能存在一个主键;主键保证记录的唯一性;主键自动为NOT NULL;
    例:mysql>CREATE TABLE tb3(id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,username VARCHAR(20) NOT NULL);
    mysql>INSERT INTO tb3 VALUES('Tom'),VALUES('John'),VALUES('Rose'),VALUES('Dimitar');
    mysql>SELECT * FROM tb3;
    例2:mysql>CREATE TABLE tb4(id SMALLINT UNSIGNED PRIMARY KEY,username VARCHAR(20) NOT NULL);
    mysql>INSERT tb4 VALUES(4,'Tom'); mysql>INSERT tb4 VALUES(22,'John');成功;
    mysql>INSERT tb4 VALUES(4,'Rose');错误;
    28、MySQL唯一约束:UNIQUE KEY;
    唯一约束;唯一约束可以保证记录的唯一性;唯一约束的字段可以为空值(NULL);每张数据表可以存在多个唯一约束
    例:mysql>CREATE TABLE tb5(id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    ->username VARCHAR(20) NOT NULL UNIQUE KEY,
    ->age TINYINT UNSIGNED);
    查询:mysql>INSERT tb5(username,age) VALUES('Tom',22);
    mysql>INSERT tb5(username,age) VALUES('Tom',22);错误,重名
    29、MySQL默认约束:DEFAULT
    默认值;当插入记录时,如果没有明确为字段赋值,则自动赋予默认值;
    例:mysql>CREATE TABLE tb6(id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    ->username VARCHAR(20) NOT NULL UNIQUE KEY, sex ENUM('1','2','3')default '3');
    写入:mysql>INSERT tb6(username) VALUES('Tom'); mysql>SELECT *FROM tb6;
    30、MySQL外键约束的要求解析:
    约束保证数据的完整性和一致性; 约束分为表级约束和列级约束;
    约束类型包括:NOT NULL(非空约束);PRIMARY KEY(主键约束);UNIQUE KEY(唯一约束);DEFAULT(默认约束);FOREIGN KEY(外键约束)
    31、MySQL外键约束的要求解析:FOREIGN KEY:
    父表和字表必须使用相同的存储引擎,而且禁止使用临时表; 数据表的存储引擎只能为InnoDB;
    外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。
    外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。
    步骤:编辑数据表的默认存储引擎:MySQL配置文件:default-stroage-engine=InnoDB
    mysql>USE test;  mysql>CREATE TABLE provinces(id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    ->pname VARCHAR(20) NOT NULL);
    mysql>CREATE TABLE users(id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,username VARCHAR(10) NOT NULL,
    ->pid BIGINT FOREIGN KEY (pid) REFERENCES provinces(id); 不能创建成功;
    mysql>CREATE TABLE users(id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,username VARCHAR(10) NOT NULL,
    ->pid SMALLINT  UNSIGNED  FOREIGN KEY (pid) REFERENCES provinces(id);创建成功;
    查看:mysql>SHOW INDEXES FROM provincesG; mysql>SHOW CREATE TABLE users;
    32、外键约束的参照操作:
    CASCADE:从父表删除或更新且自动删除或更新字表中匹配的行;
    SET NULL:从父表删除或更新行,并设置字表中的外键列为NULL。如果使用该选项,必须保证字表列没有指定NOT NULL;
    RESTRICT:拒绝对父表的删除或更新操作。 ; NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同
    例:mysql>CREATE TABLE users1(
    id SMALLINT(5) UNSIGNED AUTO_INCREMENT,
    username VARCHAR(10) NOT NULL PRIMARY KEY,
    pid SMALLINT(5)  UNSIGNED DEFAULT NULL,
    FOREIGN KEY (pid) REFERENCES provinces(id) ON DELETE CASCADE
    ->);必须现在父表中插入信息
    mysql>INSERT provinces(pname) VALUES('A'),VALUES('B'),VALUES('C');
    mysql>INSERT users1(username,pid)VALUES('Tom',3);成功但mysql>INSERT users1(username,pid)VALUES('John',7);错
    mysql>INSERT users1(username,pid)VALUES('Roose',3);
    mysql>DELETE FROM provices where id=3;字表中也不存在了。
    33、表级约束与列级约束:
    对一个数据列建立的约束,称为列级约束。;对多个数据列建立的约束,称为表级约束。;
    列级约束既可以在列定义时声明,也可以在列定义后声明,;表级约束只能在列定义后声明。
    34、修改数据表:
    添加单列:ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST|AFTER col_name]如果省略FIRST or AFTER则会放到末尾
    mysql>show columns from users1;
    mysql>ALTER TABLE users1 ADD age TINYINT UNSIGNED NOT NULL DEFAULT 10;
    mysql>SHOW COLUMNS FROM users;
    mysql>ALTER TABLE users1 ADD password VARCHAR(32) NOT NULL AFTER username;
    mysql>ALTER TABLE users1 ADD truename VARCHAR(20) NOT NULL FIRST; mysql>SHOW COLUMNS FROM users1;
    添加多列:
    ALTER TABLE tbl_name ADD [COLUMN] (col_name column_definition,...)
    删除列:
    ALTER TABLE tbl_name DROP [COLUMN] col_name; mysql>ALTER TABLE users1 DROP password, DROP age;
    35、添加主键约束:
    ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)
    例:mysql>CREATE TABLE users2( username VARCHAR(10) NOT NULL, pid SMALLINT  UNSIGNED );
    mysql>ALTER TABLE users2 ADD id smallint unsigned;
    mysql>ALTER TABLE users2 ADD CONSTRAINT PK_users2_id PRIMARY KEY (id);添加主键约束  mysql>SHOW COLUMNS  FROM users2;
    mysql>ALTER TABLE users2 ADD UNIQUE (username);添加唯一约束
    mysql>ALTER TABLE users2 ADD FOREIGN KEY (pid) REFERENCES provinces(id);外键约束
    添加/删除默认约束
    ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal|DROP DEFAULT}
    mysql>ALTER TABLE users2 ADD age TINYINT UNSIGNED NOT NULL; mysql>ALTER TABLE users2  ALTER age SET DEFAULT 15;
    mysql>ALTER TABLE users2  ALTER age DROP DEFAULT;
    删除主键约束
    ALTER TABLE tbl_name DROP PRIMARY KEY
    删除唯一约束
    ALTER TABLE tbl_name DROP {INDEX|KEY} index_name
    mysql>SHOW INDEXES FROM  users2 查看约束的名字  
    mysql>ALTER TABLE users2 DROP INDEX username;
    删除外键约束:
    ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol
    mysql>SHOW CREATE TABLE user2 查看外键约束名字;
    mysql>ALTER TABLE users2 DROP FOREIGN KEY  user2_ibfk_1; mysql>ALTER TABLE users2 DROP INDEX pid删除索引
    修改列定义:
    ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition  [FIRST|AFTER col_name]
    mysql>ALTER TABLE user2 MODIFY id SMALLINT UNSIGNED NOT NULL FIRST;修改位置
    mysql>ALTER TABLE user2 MODIFY id TINYINT UNSIGNED NOT NULL;修改列定义
    修改列名称:
    ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST|AFTER col_name]
    mysql>ALTER TABLE use2 CHARNGE pid p_id TINYINT UNSIGNED NOT NULL;
    数据表格更名:
    方法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]...
    例:mysql>ALTER TABLE users2 RENAME users3; mysql>show tables;
    例:mysql>RENAME TABLE users3 TO users2;

  • 相关阅读:
    HDU-1275-两车追及或相遇问题(数学题目)
    hdu 2209 翻纸牌游戏
    HDU1217:Arbitrage(SPFA)
    HDU1548:A strange lift(Dijkstra或BFS)
    Hdu-2112 HDU Today (单源多点最短路——Dijsktra算法)
    HDU 3374 String Problem (KMP+最大最小表示)
    mysql导入的时候提示“1046-No Database selected”的解决办法
    win10开发环境下安装mongodb
    微服务项目开发学成在线_day01_CMS服务端开发
    springboot的http监控接口启动器的配置
  • 原文地址:https://www.cnblogs.com/gufengchen/p/11062665.html
Copyright © 2011-2022 走看看