MySQL的简单使用
MySQL 参数
|
参数 |
描述 |
备注 |
|
-D,--database=、name |
打开指定数据库 |
mysql –uroot –procky –Dhisdb 或者mysql –uroot –procky --database=hisdb root:用户名rocky:密码hisdb:数据库名称 |
|
--delimiter=name |
指定分隔符 |
|
|
-h, --host=name |
指定服务器名称 |
同上,本地服务器可以用127.0.0.1或者localhost |
|
-p, --password=name |
密码 |
mysql –uroot –procky 或者mysql –uroot --password=rocky |
|
-P, --port=# |
端口号 |
默认是端口号是my.ini配置中的数字 |
|
--prompt=name |
设置提示符 |
登陆后也可以使用prompt [提示符]的方法修改提示符 |
|
-u, --user=name |
用户名 |
同上 |
|
-V, --version |
输出版本信息并且退出 |
备注:所有参数注意大小写
MySQL 退出
登陆到mysql 后。输入以下命令即可退出mysql
mysql > exit;
mysql > quit;
mysql > \q;
MySQL 提示符参数
|
参数 |
描述 |
|
\D |
完整日期 |
|
\d |
当前数据库名称 |
|
\h |
当前服务器名称 |
|
\u |
当前用户 |
MySQL 常用命令
|
命令 |
描述 |
|
SELECT VERSION() |
显示当前服务器的版本号 |
|
SELECT NOW() |
显示当前日期 |
|
SELECT USER() |
显示当前用户 |
|
SHOW {DATABASES|SCHEMAS} [LIKE 'pattern' | WHERE expr |
查看当前服务器的数据库列表 |
|
SHOW WARNINGS |
查看警告信息 |
|
ALTER {DATABASE|SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name |
修改数据库的编码方式 |
|
DROP {DATABASE|SCHEMA} [IF EXISTS] db_name |
删除数据库 |
|
SHOW DATABASES |
显示数据库 |
|
SHOW TABLES [FROM db_name] |
显示数据表 |
|
SHOW COLUMNS FROM tb_name |
查看数据表的结构 |
MySQL 语句规范
- 关键字与函数名称全部大写
- 数据库名称、表名称、字段名称全部小写
- SQL语句必须以分号结尾
创建数据库
格式:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] chartset_name
范例:CREATE DATABASE hisdb;
说明:DATABASE 和SCHEMA完全相同,任选其一即可。
IF NOT EXISTS 假设创建的数据库存在,就不创建
DEFAULT CHARACTER 数据库的编码方式。
修改数据表
添加单列
ALTER TABLE tbl_name ADD [COLUMN] col_name column_definiton [FIRST | AFTER col_name]
FIRST表示新添加的列位于最前面,AFTER col_name表示在某一列后面,默认添加到最后一列
添加多列
ALTER TABLE tbl_name ADD [COLUMN] (col_name column_difinition, col_name column_difinition);
删除列
ALTER TABLE tbl_name DROP col_name
修改列定义
ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRST|AFTER colname]
修改列名称
ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FRIST|AFTER col_name]
修改数据表名称
- ALTER TABLE tbl_name RENAME [TO|AS] new_tbl_name
- RENAME TABLE tbl_name TO new_tbl_name [,tbl_name2 TO new_tbl_nme]…
自动编号
自动编号必须跟主键组合使用,默认情况下,起始值为1,增量为1.
主键
主键约束
每张数据表只能存在一个主键
主键保证记录的唯一性
主键自动为NOT NULL
CREATE TABLE tb2 ( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL);
唯一约束
唯一约束可以保证记录的唯一性
唯一约束的字段可以为空
每张表中可以存在多个唯一约束
CREATE TABLE tb3 (id SMALLINT UNSIGNED UNIQUE KEY,
username VARCHAR(20) NOT NULL);
默认值
当插入记录时,如果没有明确为字段赋值,则自动赋予默认值
约束
约束保证了数据的完整性和一致性
约束分为表级约束和列级约束。表级约束表示约束两个或两个以上的字段列级约束表示约束一个字段,表级约束只能在列定义后声明
约束类型:
NOT NULL 非空约束 不存在表级约束,只有列级约束
PRIMARY KEY 主键约束
UNIQUE KEY 唯一约束
DEFAULT 默认约束 不存在表级约束,只有列级约束
POREIGN KEY 外键约束
外键约束
外键约束的条件
- 父表和子表必须使用相同的存储引擎,而且禁止使用临时表。子表具有外键列的表,子表所参照的表称为父表。
- 数据表的存储引擎只能为InnoDB。
- 外键列和参照列必须具有相同的数据类型,其中数字的长度或是否有符号位必须相同,而字符串的长度则可以不同。
- 外键列和参照列必须创建索引,如果外键列不存在索引的话MySQL将自动创建索引。参照列不会自动创建索引。
范例:
父表的创建:CREATE TABLE province ( id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, pname VARCHAR(20) NOT NULL);
子表的创建:CREATE TABLE city (id SMALLINT UNSIGNED PRIMARY KEY AUTOINCREMENT,name VARCHAR(20) NOT NULL, pid SMALLINT UNSIGNED, FOREIGN KEY (pid) REFERENCES province (id));
外键约束的参照操作
- CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行
- 例如:CREATE TABLE city (id SMALLINT UNSIGNED PRIMARY KEY AUTOINCREMENT,name VARCHAR(20) NOT NULL, pid SMALLINT UNSIGNED, FOREIGN KEY (pid) REFERENCES province (id) ON DELETE CASCADE);
- SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL,如果使用该选项,必须保证子表列没有指定的NOT NULL
- RESTRICT:拒绝对父表的删除或更新操作
- NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同
修改约束
添加约束
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,……)
CONSTARINT是给约束起名称,可不加
删除约束
ALTER TABLE tabl_name DROP {INDEX|KEY} index_name
INSERT
INSERT [INTO] tbl_name [(tbl_column,…)] {VALUES|VALUE} (expr|DEFAULT,…),(……)
INSERT [INTO] tbl_name SET col_name={expr | DEFAULT},…
INSERT [INTO] tbl_name [(col_name,…)] SELECT…
UPDATE 单表更新
UPDATE [LOW_PRIORITY][IGNORE] table_reference SET col_name1={expr1 |DEFAULT}[,col_name2={expr2 | DEFAULT}]..[WHERE where_condition]
MySQL的简单使用的更多相关文章
- jsp+servlet+mysql 实现简单的银行登录转账功能
jsp+servlet+mysql 实现简单的银行登录转账功能 [前期的准备] html(登录界面),servlet(处理业务逻辑),jsp(主要实现界面),mysql(实现与数据库的简单的交互)先从 ...
- Ubuntu 安装mysql和简单操作
http://www.cnblogs.com/zhuyp1015/p/3561470.html ubuntu上安装mysql非常简单只需要几条命令就可以完成. 1. sudo apt-get inst ...
- mysql定时任务简单例子
mysql定时任务简单例子 ? 1 2 3 4 5 6 7 8 9 如果要每30秒执行以下语句: [sql] update userinfo set endtime = now() WHE ...
- Mysql的简单使用(三)
接上文Mysql的简单使用(二) mysql中结构相同的两个表进行合并:(注意需要两个表的结构是一样的) 有如下结构的两个表father和person. 合并的步骤为: 1.把person表和fath ...
- PHP 17: MySQL的简单介绍
原文:PHP 17: MySQL的简单介绍 这一章将简单介绍MySQL的基本知识. 本文来自http://lib.hackbase.com/html/8/35125.htm. MySQL是最受欢迎的开 ...
- MySQL的简单使用-(一)
MySQL的简单使用 使用MySQL命令行工具 Windows 用户使用: MySQL Client, 输入密码 Linux: mysql -u用户名 -p密码 mysql -uroot -p 显示数 ...
- mysql安装简单教程(自动安装/配置安装)
mysql安装简单教程(自动安装/配置安装) 1.1前言: 由于特殊原因,在最近2-3个月里mysql真是安装了无数遍,每次安装都要上网找教程,每个教程基本都不一样,因此还是自己写下来比较好,毕竟自己 ...
- python操作三大主流数据库(2)python操作mysql②python对mysql进行简单的增删改查
python操作mysql②python对mysql进行简单的增删改查 1.设计mysql的数据库和表 id:新闻的唯一标示 title:新闻的标题 content:新闻的内容 created_at: ...
- Linux下MySQL的简单操作
Linux下MySQL的简单操作 更改mysql数据库root的密码 首次进入数据库是不用密码的: [root@localhost ~]# /usr/local/mysql/bin/mysql -ur ...
- MySQL基本简单操作03
MySQL基本简单操作 现在我创建了一个数据表,表的内容如下: mysql> select * from gubeiqing_table; +----------+-----+ | name | ...
随机推荐
- 项目实现不同环境不同配置文件-maven profile
最近接触的项目都是在很多地方都落地的项目,需要支持不同的环境使用不同的配置文件.一直以来都以为是人工的去写不同的配置文件,手动的去修改运用的配置文件.感觉自己还是太low呀.maven的使用的还停留在 ...
- Spring事物管理
spring事务配置的五种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只 ...
- 约瑟夫问题(java实现)
方法一.自定义的链表实现 package com.code.yuesefu; public class YueSeFuList { public static void main(String[] a ...
- PHP代码
1 <html> <head> <meta http-equiv="content-type" content="text/h ...
- 理解HTML语义化
1.什么是HTML语义化? <基本上都是围绕着几个主要的标签,像标题(H1~H6).列表(li).强调(strong em)等等> 根据内容的结构化(内容语义化),选择合适的标签(代码语义 ...
- Nutch搜索引擎(第1期)_ Nutch简介及安装
1.Nutch简介 Nutch是一个由Java实现的,开放源代码(open-source)的web搜索引擎.主要用于收集网页数据,然后对其进行分析,建立索引,以提供相应的接口来对其网页数据进行查询的一 ...
- [LeetCode] Plus One Linked List 链表加一运算
Given a non-negative number represented as a singly linked list of digits, plus one to the number. T ...
- [LeetCode] House Robber II 打家劫舍之二
Note: This is an extension of House Robber. After robbing those houses on that street, the thief has ...
- 通过源码了解ASP.NET MVC 几种Filter的执行过程
一.前言 之前也阅读过MVC的源码,并了解过各个模块的运行原理和执行过程,但都没有形成文章(所以也忘得特别快),总感觉分析源码是大神的工作,而且很多人觉得平时根本不需要知道这些,会用就行了.其实阅读源 ...
- Asp.net 设置GridView自适应列宽不变形
动态绑定的GridView由于列数不固定,而列又太多,这样设置GridView固定宽度就不能满足需求了.为此整理了两种方法来达到GridView自适应列宽不变形的效果. //在GridView的行数据 ...