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 | ...
随机推荐
- 腾讯云CentOS系统配置apache和tomcat
本文使用yum软件包管理工具基于CentOS7.2版本配置apache和tom. 云服务器选购完毕后,安装Xshell软件,输入用户名密码即可远程登陆登录(centos用户名默认是root). 1,下 ...
- java 后台开发关键词解释
bean类:是一些实体类,包括viewbean,databean等等.action类:可作为接收显示层的数据,连接显示层和业务逻辑实现层的控制层.model类:MVC中model层就是到层.在java ...
- GNU Readline 库及编程简介
用过 Bash 命令行的一定知道,Bash 有几个特性: TAB 键可以用来命令补全 ↑ 或 ↓ 键可以用来快速输入历史命令 还有一些交互式行编辑快捷键: C-A / C-E 将光标移到行首/行尾 C ...
- <编程珠玑>笔记 (一) 问题-算法-数据结构
1 精确描述问题 第一章强调的重点在于”精确的描述问题“,这是程序开发的第一步 -- "Problem definition" 1.1 Precise problem stat ...
- 前端之ajax
前端之ajax 本节内容 ajax介绍 原生js实现ajax jquery实现ajax json 跨域请求 1. ajax介绍 AJAX(Asynchronous Javascript And XML ...
- angular学习笔记(二十八)-$http(6)-使用ngResource模块构建RESTful架构
ngResource模块是angular专门为RESTful架构而设计的一个模块,它提供了'$resource'模块,$resource模块是基于$http的一个封装.下面来看看它的详细用法 1.引入 ...
- Spring 下默认事务机制中@Transactional 无效的原因
Spring中 @Transactional 注解的限制1. 同一个类中, 一个nan-transactional的方法去调用transactional的方法, 事务会失效 If you use (d ...
- jBPM4.4 no jBPM DB schema: no JBPM4_EXECUTION table. Run the create.jbpm.schema target first in the install tool.
jBPM4.4 no jBPM DB schema: no JBPM4_EXECUTION table. Run the create.jbpm.schema target first in the ...
- [LeetCode] Is Subsequence 是子序列
Given a string s and a string t, check if s is subsequence of t. You may assume that there is only l ...
- 单例模式中用volatile和synchronized来满足双重检查锁机制
背景:我们在实现单例模式的时候往往会忽略掉多线程的情况,就是写的代码在单线程的情况下是没问题的,但是一碰到多个线程的时候,由于代码没写好,就会引发很多问题,而且这些问题都是很隐蔽和很难排查的. 例子1 ...