MySQL入门命令

我主要是在维护OpenStack云平台的时候会涉及MySQL数据库的操作,这里就跟大家分享一下常用的简单命令,也为自己做个小练习。

    1.登录MySQL数据库

mysql -h localhost -u root -p 123456

其中,-h:mysql服务器的IP地址或主机名,如果是本机登录,该选项可以省略;

          -u:登录用户名

          -p:登录用户对应的登录密码

   

 2.查看数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)

 

 3.删除数据库

命令格式:DROP DATABASE 数据库名;

mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
+--------------------+
2 rows in set (0.00 sec)

 

 4.创建数据库

命令格式:CREATE DATABASE 新建数据库名;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
+--------------------+
2 rows in set (0.00 sec)mysql> create database test;
Query OK, 1 row affected (0.00 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)

   

 5.选定操作数据库

命令格式:USE 数据库名;

mysql> use test;
Database changed

   

  6.在选定的数据库中创建表单

    table的创建其实不是个简单的操作,涉及实体完整性、参照完整性等条件,下面对常用命令进行下介绍。

 1)创建table

 命令格式:CREATE TABLE 表名

              ->(

              ->列名1 数据类型(完整性约束条件),

              ->列名2 数据类型(完整性约束条件),

              ->列名3 数据类型(完整性约束条件)

              ->);

mysql> create table students(id int(10),name char(20),sex char(10));
Query OK, 0 rows affected (0.07 sec)mysql> create table course(id int(10),name char(20));
Query OK, 0 rows affected (0.07 sec)

上述示例中,完整性约束条件为数据长度,属于比较简单的一种。

 2)完整性约束条件说明

PRIMARY KEY标识该属性为该表的主键,可以唯一标识一组记录
FOREIGN KEY标识该属性为该表的外键,是与该表形成关联的某一表的主键
NOT NULL标识该属性的值不能为空
UNIQUE标识该属性的值是唯一的
AUTO_INCREMENT标识该属性的值是自动增加的
DEFAULT为该属性设置默认值

 

 

 

 

 

 

 3)设置table的主键

 单字段主键格式:列名 数据类型 PRIMARY KEY,或者如多字段主键格式

mysql> create table course(id int(10) PRIMARY KEY,name char(20));
Query OK, 0 rows affected (0.08 sec)

或者

mysql>create table course(id int(10),name char(20),PRIMARY KEY(id));
Query OK, 0 rows affected (0.08 sec)

 多字段主键格式:PRIMARY KEY(列名1,列名2,列名3......)

mysql> create table num
-> (
-> num_id int AUTO_INCREMENT NOT NULL,
-> stu_id int(10) NOT NULL,
-> name char(20) NOT NULL,
-> PRIMARY KEY(num_id,stu_id)
-> )
-> ;
Query OK, 0 rows affected (0.03 sec)

 为已存在的表格删除主键:alter table 表名 drop PRIMARY KEY 

mysql> alter table score drop PRIMARY KEY;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

 为已存在的表设置或重新设置主键:alter table 表名 add PRIMARY KEY(属性1,属性2......);

mysql> alter table score add PRIMARY KEY (stu_id,cour_id);
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

 4)设置table的外键

 设置外键命令格式:CONSTRAINT 外键别名 ADD FOREIGN KEY(属性1,属性2,....属性n) REFERENCES 主表名(属性1',属性2',...属性n');

 此处只是一个简单的外键设置命令,下一篇将会详细介绍外键约束设置

mysql> CREATE TABLE teacher (-> id int PRIMARY KEY,-> stu_id int,-> name varchar(20),-> CONSTRAINT STUID FOREIGN KEY(stu_id) REFERENCES student1(id)-> );
Query OK, 0 rows affected (0.00 sec)

 删除外键命令格式:ALTER TABLE 表名 DROP FOREINGN KEY 外键名;

mysql> alter table teacher drop foreign key STUID;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

 添加外键命令格式:ALTER TABLE 从表名 CONSTRAINT 外键别名 FOREIGN KEY(从表属性1,属性2,....属性n) REFERENCES 主表名(属性1',属性2',...属性n');

 5)设置表的非空约束

 简单的说就是不让这个属性的值为空,不填的话就会报错

 格式:属性名 数据类型 NOT NULL

 6)设置表的唯一性约束

 就是这个属性的值是不能重复的

 格式:属性名 数据类型 UNIQUE

 7)设置表的属性值自动增加

 AUTO_INCREMENT约束的字段可以是任何整数类型(TINYINT、SMALLINT、INT和BIGINT),在默认的情况下,该字段的值是从1开始自增

 格式:属性名 数据类型 AUTO_INCREMENT

 8)设置表的属性的默认值

 格式:属性名 数据类型 DEFAULT 默认值

mysql> CREATE TABLE student3 (-> id int PRIMARY KEY AUTO_INCREMENT,-> teacher_id int UNIQUE,-> name varchar(20) NOT NULL,-> sex varchar(10) DEFAULT 'male'-> );
Query OK, 0 rows affected (0.01 sec)

 

 7.查看指定数据库的所有表单

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| course         |
| students       |
+----------------+
2 rows in set (0.00 sec)

 

 8. 删除指定数据库中的指定表单

 执行该命令之前,必须使用USE命令选定数据库,否则会出现会出现“No database selected”的错误。

 命令格式:DROP TABLE 表单名称;

mysql> drop table course;
Query OK, 0 rows affected (0.00 sec)mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| students       |
+----------------+
1 row in set (0.00 sec)

 

 9.查看表结构

 1)查看表的基本结构

 命令格式:DESCRIBE 表名;

mysql> DESCRIBE num;
+--------+----------+------+-----+---------+----------------+
| Field  | Type     | Null | Key | Default | Extra          |
+--------+----------+------+-----+---------+----------------+
| num_id | int(11)  | NO   | PRI | NULL    | auto_increment |
| stu_id | int(10)  | NO   | PRI | NULL    |                |
| name   | char(20) | NO   |     | NULL    |                |
+--------+----------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

 2)查看表的详细结构

 命令格式:SHOW CREATE TABLE 表名

mysql> show create table num;
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                       |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| num   | CREATE TABLE `num` (`num_id` int(11) NOT NULL AUTO_INCREMENT,`stu_id` int(10) NOT NULL,`name` char(20) NOT NULL,PRIMARY KEY (`num_id`,`stu_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

转载于:https://www.cnblogs.com/yy20141204bb/p/8379168.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251017.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【模板】分块

题意简述 已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和 题解思路 对于一个长度为n的序列,我们可以讲其中的元素分为\( \sqrt{n} \) 个连续的子序列,每块的长度自然就为\( \sqrt{n} \)…

javascript --- 使用ajax与服务器进行通信

Ajax: (Asynchronous JavaScript and XML,异步JavaScript与XML技术)是一种有效利用JavaScript和DOM的操作. 与传统HTTP请求的区别: Ajax允许只更新页面的一部分,因此减少了响应中传输的数据量 Ajax的API: Ajax与服务器进行通信,可以使用JavaScript中原生的XMLHttpRequest对象…

ES6-10 super、4种遍历方式、原型、symbol遍历

由于现代 JavaScript 引擎优化属性访问所带来的特性的关系,更改对象的 [[Prototype]]即__proto__在各个浏览器和 JavaScript 引擎上都是一个很慢的操作。 一 Object原型方法 1 Object.setPrototypeOf(obj, proto) 用该方法而不是直接修改__proto__返回值是设置好原…

IntelliJ IDEA使用

1:下载 ideaIU-2017.2.exe,JetbrainsCrack-2.6.2.jar(补丁) 2:安装ideaIU-2017.2.exe,将补丁放在D:\java\intellij\IntelliJ IDEA 2017.2\bin 目录下 3:在安装的idea下面的bin目录下面有2个文件 : 一个是id…

js中如何删除json对象的某一个选项

我有一个这样一个对象,getData, 但是我不想要每一项的id,那怎么去删除呢(使用delete)? getData.map((item) >{delete item["id"];});console.log(getData);转载于:https://www.cnblogs.com/mmykdbc/p/8386407.html

ES6-11 Symbol、iterator、forOf、typeArray

…剩余运算符 const obj1 {a: 1,b: 2 } const obj2 {a: 100,b: 2,c: 300 } const obj {...obj1,...obj2 } console.log(obj) // 和Object.assign(obj, obj1, obj2)结果相同[Symbol.hasInstance] Symbol构造函数上的属性,默认调用了方法 iterator迭代器 对数…

node --- 游走在客户端和服务器间的http

本篇文章,讲述了一个很简单的上传图片(/start)到本地服务器,然后路由跳转到/upload. 写这个程序的目的是为了帮助理解HTTP的一些基本概念及node对于http api的实现以及程序的设计模式. IP: 计算机之间的通信 TCP: 应用程序之间的通信 HTTP: 基于TCP实现的应用层协议,设计之初是…

BigDecimal踩过的大坑

通常Java中涉及金钱相关的计算为了保持精度,会采用BigDecimal来实现,但是BigDecimal中创建BigDecimal类对象的时候,如果使用直接new的话,必须是String类型的参数,否则会导致创建出来的对象不是你想要的,比如…

redis配置环境变量

直接上图不解释 redis安装路径,我的电脑右击属性 窗口R键,输入cmd回车,输入redis-server.exe 回车 再开一个命令窗口,窗口R键,输入cmd回车,输入 redis-cli.exe -h 127.0.0.1 -p 6379 回车 转载于:https:/…

对转义字符的思考

ASCII码 计算机存储文字时用的是二进制,ASCII码就是一张对照表,什么字符对应什么码,将二进制码存储下来0-127位表示基础的ASCII码0-31,和127表示非打印控制字符(如换行、回车、响铃、文头、文尾)32-126表示…

进程总结

进程总结 进程: 正在进行的一个过程或者说一个任务 进程是计算机中资源分配的最小单位 多进程之间的数据是隔离的 多进程是用来解决高计算型的程序用的 启动进程的开销比较大,其开启数量和cpu的个数相关,正常在cpu的个数1-2倍之间 进程越多&a…

debian如何安装Let's Encrypt

如果python默认版本不是2,删除 /usr/bin/python 添加软引用 in -s /usr/bin/python2 /usr/bin/python 第一步,卸载virtualenv apt-get purge python-virtualenv python3-virtualenv virtualenv 如果pip没有就安装pip apt-get install python-pip pip …

算法 --- 判断某个值是否在二叉搜索树中

function funA(root, k) {if(root null) {return false} else {if(k root.val) {return true } else {if( k < root.val) {return funA(root.left, k)} else {return funA(root.right, k)}}} }

ES6-12 array/数值拓展、ArrayOf、ArrayFrom

要使用…须有迭代器接口 数组方法 构造器上的方法 Array.of()声明数组 替代new Array()的方式声明数组new Array()不传参数返回空数组&#xff0c;只传1个参数时&#xff0c;代表数组长度&#xff0c;内容用empty填充&#xff0c;传多个参数&#xff0c;则代表数组内容&…

React01

目录 React-day01 入门知识React介绍官网React开发环境初始化 SPA脚手架初始化项目&#xff08;方便&#xff0c;稳定&#xff09;*通过webpack进行初始化配置镜像地址开发工具配置元素渲染组件及组件状态函数定义组件(无状态)类定义组件(有状态)*组合组件Props属性*State状态*…

算法 --- 反转数组

几个注意点: 1.输出的时候,也要做数字超出处理 2.js中可以使用 str -0 将字符串类型转换成数字类型 ( 注意不是 0) 3.可以使用 num ‘’ 将数字类型转换成字符串类型 4.使用str.split(’’) 可以将字符串转换成数组 5.使用arr.join(’’) 可以将数组转换成字符串 6.JS中2的31次…

ES6-13 正则方法、修饰符yus、UTF_16编码方式

修饰符 m multiLine 对于str中含\n的情况g globali ignoreCase 元字符 反斜杠加转义 元字符含义简写\w匹配字母、数字、下划线。等价于’[A-Za-z0-9_]’。word\W匹配非字母、数字、下划线。等价于 ‘[^A-Za-z0-9_]’。\s匹配任何空白字符&#xff0c;包括空格、制表符、换页…

svn文件大小类型限制,提交必须加多少字的说明

#!/bin/shREPOS"$1" TXN"$2" #此处更改大小限制&#xff0c;这里是5M MAX_SIZE5242880 #此处增加限制文件后缀名 FILTER\.(zip|rar|o|obj|tar|gz)$SVNLOOK/usr/bin/svnlookLOGMSG$SVNLOOK log -t "$TXN" "$REPOS" | wc -cif [ "$…

cmd窗口快速定位到具体文件夹方法

在用Python进行机器实战时&#xff0c;打开cmd窗口后&#xff0c;总是到定位到kNN.py所在文件夹才能Python&#xff08;否则import kNN失败&#xff09;&#xff0c;每次都要输入地址非常麻烦 这里介绍一个cmd窗口快速定位到具体文件夹方法&#xff1a; 按住Shift键右击鼠标打开…

算法 --- 罗马数字转整数

解体思路: 1.写一个对象trans用于保存罗马和数字之间的映射关系 2.重点在于当数值小的出现在数值大的左边时,会减去该数,出现在右边时会加上该数,因此需要与后面的进行比较 3.在得到s时,首先给它转换成字符串,并在末位加一个0 /*** param {string} s* return {number}*/ var r…