1.在服务器主机上以 root 用户登陆,创建位于其他客户端的新用户:

mysql> CREATE USER  'newuser'@'192.168.1.109'  IDENTIFIED BY 'password';

2.创建数据库

mysql> CREATE DATABASE sampdb;

3.设置当前默认数据库

(i) 创建数据库后,当前默认数据库并没有指定,所以进行如下操作会没有结果:

mysql> select database();
+------------+
| database() |
+------------+
| NULL |
+------------+
row in set (0.00 sec)

要想把 sampdb 设置为默认的数据库,需要执行 use 语句:

mysql> use sampdb;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| sampdb |
+------------+
row in set (0.00 sec)

(ii)另一种选择默认数据库的方法是,调用 mysql 登录的时候在命令行上加上数据库的名字:

root@javis:/usr/local/mysql$ mysql -p -uroot sampdb
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.6. Source distribution Copyright (c) , , Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> select database();
+------------+
| database() |
+------------+
| sampdb |
+------------+
row in set (0.00 sec)

如果是登录远程主机的话,还应该加上 -h 命令以指定主机:

mysql -h serverHost.com  -p -uroot sampdb

4.创建表

(i) 在设置好当前默认的数据库的情况下,使用 'create table( );' 语句创建新的数据表

mysql> create table student
-> (
-> name varchar() not null,
-> sex enum('F','M') not null,
-> student_id int unsigned not null auto_increment,
-> primary key (student_id)
-> )ENGINE =InnoDB;
Query OK, rows affected (0.07 sec)
mysql> create table grade_event
-> (
-> date DATE NOT NULL,
-> category ENUM ('T','Q') NOT NULL,
-> event_id INT unsigned not null auto_increment,
-> primary key (event_id)
-> )engine =InnoDB;
Query OK, rows affected (0.07 sec)
mysql> create table score
-> (
-> student_id int unsigned not null,
-> event_id int unsigned not null,
-> score int not null,
-> primary key (event_id,student_id),
-> index (student_id),
-> foreign key (event_id) references grade_event (event_id),
-> foreign key (student_id) references student (student_id)
-> )engine = InnoDB;
Query OK, rows affected (0.09 sec)
mysql> create table absence
-> (
-> student_id int unsigned not null,
-> date DATE NOT NULL,
-> primary key (student_id,date),
-> foreign key (student_id) references student (student_id)
-> )engine = InnoDB;
Query OK, rows affected (0.08 sec)

varchar(n) 表示的是:该列可以存放长度可变的字符型值,且最大长度为n个字符。

date数据类型表示日期。MySQL要求将日期表示为 'CCYY-MM-DD' 的格式,其中的CC、YY、MM、DD 分别代表了世纪、世界的年份、月和日。例如,要在MySQL里表示“2016年7月17日”这样一个日期,则需要使用 '2016-07-17'这样的格式命令。

列的属性有 null(可以没有值) 和 not null(必须有值)。

(ii) 使用 'describe table_name' 可以查看表的信息:

mysql> describe student;
+------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+----------------+
| name | varchar() | NO | | NULL | |
| sex | enum('F','M') | NO | | NULL | |
| student_id | int() unsigned | NO | PRI | NULL | auto_increment |
+------------+------------------+------+-----+---------+----------------+
rows in set (0.01 sec)

  这里可以看到,未定义为允许 NULL 的Default 列会显示NULL,那是因为NULL也可用于表明该列没有显式的 Default 子句。

  如果忘记了一个表中的列名、想知道其数据类型,或者想了解其宽度是多少,那么可以使用 describe 。还可以利用它来查看MySQL 在表行里存储各列的先后顺序。当执行 insert 或 load data 语句时,这个顺序很重要,因为这些语句要求各列的值是以它们的默认列顺序列出的。

  还可以用 desc ,explain 或 show 语句来获得表的信息:

describe  student;
desc student;
explain student;
show columns from student;
show fields from student;

上述命令效果相同。

(iii) 可以在 show 语句的末尾加上一个 like 子句,这样便只能看到与给定模式相匹配的那些列的信息:

mysql> show columns from student like '%name';
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name | varchar() | NO | | NULL | |
+-------+-------------+------+-----+---------+-------+
row in set (0.01 sec)

(iv) 使用 'show tables;' 命令可以查看当前数据库中有哪些表:

mysql> show tables;
+------------------+
| Tables_in_sampdb |
+------------------+
| member |
| president |
| student |
+------------------+
rows in set (0.00 sec)

(v) 使用 'show databases;' 命令可以查看当前连接到的服务器上的所有数据库:

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

5. 添加新行

(i) 一次性指定全部列值的语法:

insert into tbl_name values( value1, value2, value3, ... );

例如:

mysql> insert into student values('Jim','M',NULL);
Query OK, row affected (0.00 sec) mysql> insert into grade_event values('2016-07-17','Q',NULL);
Query OK, row affected (0.00 sec)

  在使用此语法时,VALUES 列表必须包含表中每一列的值,并且值的顺序要与各列在表里的存储顺序保持一致。(通常情况下,该顺序就是各列在该表的 CREATE TABLE 语句里指定的顺序。) 如果不太确定列的顺序,那么可以利用 DESCRIBE  tbl_name 语句来查明。

  在MySQL里,可以使用单引号或双引号将字符串和日期括起来,不过使用单引号会更标准一些。在 AUTO_INCREMENT 列里插入一个“缺失值” (missing value),可以让MySQL为该列自动生成下一个序号。

  MySQL还支持使用一条INSERT语句,同时指定多个值列表的方法,将多个行插入一个表里:

INSERT INTO tbl_name VALUES(...),(...),...;

例如:

mysql> insert into student values('Tom','M',NULL),('Lily','F',NULL);
Query OK, rows affected (0.01 sec)
Records: Duplicates: Warnings:

(ii) 命令赋值列,并列出它们的值

语法:

INSERT INTO tbl_name (col_name1,col_name2,...)  VALUES(value1,value2,...);

例如:

mysql> insert into student (name,sex) VALUES('Lucy','F'),('Travis','M');
Query OK, rows affected (0.00 sec)
Records: Duplicates: Warnings:

对于没有在INSERT语句中指定的列,将被赋予默认值。例如,上面两条语句都为给 member_id 和 event_id 赋值,因此MySQL会将默认值NULL赋给它们。又因为 member_id 和 event_id 都是 AUTO_INCREMENT 列,因此最后的结果是这两列都会被分别赋予各自的下一个序号,这与显式地将NULL赋给它们是一样的。

(iii) 使用一些列的 "列/值" 形式进行赋值

  此语法使用SET 子句实现,其中包含多个 col_name = value 的赋值形式,没有使用 VALUES() 列表的形式。

INSERT INTO tbl_name SET col_name=value1,col_name=value2,...;

例如:

mysql> insert into student set name='Steve',sex='M';
Query OK, row affected (0.00 sec)

MySQL数据库(1)----入门级操作的更多相关文章

  1. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

  2. linux系统上Mysql数据库导入导出操作

    需求:把MySQL数据库目录中的dz数据库备份到/home/dz_bak.sql ,然后再新建一个数据库dzbak,最后把/home/dz_bak.sql 导入到数据库dzbak中.操作如下:以下操作 ...

  3. 【代码学习】MYSQL数据库的常见操作

    ---恢复内容开始--- ============================== MYSQL数据库的常见操作 ============================== 一.mysql的连接与 ...

  4. PHP对MySQL数据库的相关操作

    一.Apache服务器的安装 <1>安装版(计算机相关专业所用软件---百度云链接下载)-直接install<2>非安装版(https://www.apachehaus.com ...

  5. mysql 数据库必备命令操作,入门练习一下

    mysql 数据库必备命令操作 show databases: 查看所有的数据库: create database jfedu: 创建名为jfedu数据库: use nihao: 进入jfedu数据库 ...

  6. 第二百七十九节,MySQL数据库-pymysql模块操作数据库

    MySQL数据库-pymysql模块操作数据库 pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数使用方式: 模块名称.connec ...

  7. 第二百七十八节,MySQL数据库-表内容操作

    MySQL数据库-表内容操作 1.表内容增加 insert into 表 (列名,列名...) values (值,值,值...); 添加表内容添加一条数据 insert into 表 (列名,列名. ...

  8. MySQL数据库的常见操作(七)

    MySQL数据库的常见操作 1.创建数据库 2.创建重名的数据库以及如何查看警告信息 3.设置数据库的编码方式(默认为utf8) 4.修改和查看数据库的编码方式 5.删除数据库 6.6.删除已经删除了 ...

  9. 小白老凯,初出茅庐!请多关照!简单分享一些 mysql 数据库的安装操作!请给为大神雅正!

    在我们写代码,存储数据时常常会用到各种数据库,如:mysql.access.sql.server.Oracle等等,在这里就说一下mysql数据库的的操作指令! 首先我们了解下如何安装mysql数据库 ...

随机推荐

  1. python全栈开发学习_day1_计算机五大组成部分及操作系统

    一.计算机五大组成部分: 1)五大组成: 1.控制器(指挥系统,用于控制其他计算机硬件的工作) 2.运算器(用于数学运算及逻辑运算) 3.存储器(寄存器,高速缓存,内存,磁盘(机械,固态),磁带) 4 ...

  2. SQL多字段排序

    emm 其实也没什么 就是写sql查询的时候 要对多个字段排序比如  查询原本的数据是 年份 科目 批次 2014 理科 本二2015 理科 本二 2015 理科 本一2016 理科 本二 2016 ...

  3. element-ui日期组件DatePicker选择日期范围赋值编辑问题

    最近在项目中使用element-UI的日期范围组件时遇到一个问题,相信很多人也做过这种场景,一个录入页面也同时是编辑页面,编辑的时候就需要先赋值.但是我给date组件赋值后,确无法操作了,change ...

  4. LinuxShell脚本编程基础1-vi编辑器的使用

    1.输入模式与命令模式的切换 按 [Esc]键 切换到 命令模式: 2.保存与退出 :w mytest.txt 保存文件名 :q 退出 :q! 强制退出 :wq  保存并退出 3.插入文本命令 i 在 ...

  5. 【随笔】Linux主机简单判断CC攻击的命令

    今天看到一个很有意思的命令tcpdump,在这里记录下. 如果想要看tcpdump的详细用法,可以点击这里. 什么是CC攻击? 关于CC攻击,这里引用百度的解释: CC攻击的原理就是攻击者控制某些主机 ...

  6. Android ListView中EditView再次焦点获取

    问题:在ListView中使用EditView,当第一次将焦点给到EditView的时候弹出小键盘.使得EditView失去焦点. 分析:因为在第一次使用EditView弹出小键盘之后,会重新的调用一 ...

  7. 关于 double sort 这道题的思考

    声明 笔者最近意外的发现 笔者的个人网站http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站 ...

  8. TXSQL:云计算时代数据库核弹头——云+未来峰会开发者专场回顾

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 5月23-24日,以"焕启"为主题的腾讯"云+未来"峰会在广州召开,广东省各级政府机构领导.海内外业 ...

  9. Truncated incorrect DOUBLE value: 'NO_REFUND'

    解决办法:Mysql中,如果一个字段是字符串,则一定要加单引号 问题原因: `item_refund_state` ) NOT NULL item_refund_state字段的类型是varchar但 ...

  10. wcf 登录认证 angular 认证重定向

    自定义认证管理器,分为两级:1.登陆认证.2.权限认证.权限主要是用户.角色.角色用户关系.功能(系统资源).角色功能关系,5部分决定用户的权限(视图). 两层认证都通过后,更新session的最新交 ...