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 | ...
随机推荐
- shell 脚本之 shell 练习题汇总
整理了一些 shell 相关的练习题,记录到这里. 1. 请按照这样的日期格式 xxxx-xx-xx 每日生成一个文件,例如:今天生成的文件为 2013-09-23.log, 并且把磁盘的使用情况写到 ...
- linux下创建文件与目录时默认被赋予了什么样的权限?
当我们创建一个新的文件或目录的时候,他的默认权限是什么? umask--指定当前使用者在创建文件或目录的时候默认的权限值 [root@iZ288fgkcpkZ default]# umask [roo ...
- 使用批处理文件在FTP服务器 上传下载文件
1.从ftp服务器根目录文件夹下的文件到指定的文件夹下 格式:ftp -s:[配置文件] [ftp地址] 如:ftp -s:c:\vc\ftpconfig.txt 192.168.1.1 建立一个 ...
- [LeetCode] Contains Duplicate 包含重复值
Given an array of integers, find if the array contains any duplicates. Your function should return t ...
- HTTP服务器(1)
单文件服务器 导语 在研究HTTP服务器时,我们可以从一个单文件服务器开始.无论接受到什么请求,这个服务器始终发送同一个文件.下面是示例代码,绑定的端口,发送的文件名以及文件的编码从命令行读取.如果省 ...
- C# 动态修改Config
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); confi ...
- Visual Studio 使用Web Deploy 3.6发布项目
工具:Web Deploy 3.6 点击下载 (强烈推荐使用独立的Web Deploy 安装包安装) 配置: 1.安装web deploy,安装好之后,点击IIS根目录,此处应有如下图标 另外,需要注 ...
- 反序列化漏洞问题研究之php篇
php的反序列化反序列化漏洞又称php对象注入(php Object Injection)产生的问题主要分以下两类: 将传来的序列化数据直接unserilize,造成魔幻函数的执行.这种情况在一般的应 ...
- 关于iOS特定设别推送(特定用户推送)【原】
在这里,我就不哆嗦如何制作推送证书之类的了,网上一搜一大堆. 我们现在很多开发者的推送,就是集成第三方的推送SDK,然后通过第三方的推送平台帮我们进行推送.其实,这种推送(如JPush),一般只能广播 ...
- 使用Xunit进行单元测试
http://xunit.github.io/docs/getting-started-desktop.html 1. 新建一个类库项目 2. 通过NuGet引入xunit,Shouldly,xuni ...