数据库学习之初始-创建表及几个命令

所用软件:mysql server

一,创建一个表 用creat

create table candidats
(
candidats_id int(10)   not null   auto_increment,
candidats_name char(10) not null,
candidats_addr char(50) null,
candidats_age char(10) null,
candidats_school char(50) null,
candidats_company char(50) null,
candidats_interests char(50) null,
candidats_salary int(10) null,
candidats_family char(100) null,
primary key (candidats_id)
)engine=innodb;

这样就创建了一个表,有几点在创建的过程中容易被忽略的地方

auto_increment: 表示candidats_id 这一列的数据由数据库自动生成,不用人为赋值。且每张表最多只能有一个列作为auto_increament;

primary key(): 定义主键,该表里面每一列唯一的标识符,注意主键在定义的时候 不能为空;

engine=innodb: 确认用哪个引擎。mysql里面 有多个引擎,用于具体管理和处理数据。如果不对引擎作定义,则使用默认引擎。我们可以根据不同的任务选择合适的引擎。innodb 支持事务性处理,但不支持全文本搜索;myisam 支持全文本搜索,但不支持事务处理。事务处理即保证成批的mysql 被执行。

二,希望显示所创建的表可以用show:

show columns from candidats;

三,表创建好了,用insert 为其添加内容

insert into candidats (candidats_name,
candidats_addr,
candidats_age,
candidats_school,
candidats_company,
candidats_interests,
candidats_salary,
candidats_family)
values (‘Zhou‘, ‘beijing‘, ‘25‘, ‘beijing university‘, ‘alibaba‘, null, ‘20000‘, ‘married‘),
(‘Bao‘, ‘Chengdu‘, ‘35‘, ‘sichuan normal university‘, ‘JD‘, null, ‘35000‘, null),
(‘Zhao‘, ‘Beijing‘, ‘28‘, ‘Qinghua university‘, ‘sina‘, null, null, null);

不同行内容之间用逗号隔开,不想赋值的用null. 注意定义的时候如果为not null ,则在添加内容时不能为空。

四,给表添加好内容后,用select 查看表的内容

select candidats_name from candidats;// 查看单列的内容;

结果如下:(囧,博客园粘贴不了截图);

select candidats_id, candidats_name, candidats_company from candidats;//查看某几列内容;

要查看整个表的内容可以用 *

select * from candidats;

五:要是想查看某一行或者某一类的内容呢? 可以用where来过滤

select * from candidats
where candidats_company = ‘ali‘; // 这样就可以过滤出表里面所有公司是ai的行了。

这段用到的where,可以 用多种用法

select candidats_id, candidats_name, candidats_salary from candidats
where candidats_salary>15000;//选择薪水大于15000的。

还可以有小于,等于,等

where 还可以用 in /and/or/not/is null等一起作为过滤条件,比如:

select candidats_id, candidats_name, candidats_company from candidats
where candidats_company in (‘baidu‘, ‘JD‘);

六,对于过滤出来的数据,可用order by来进行排序。

select candidats_id, candidats_name, candidats_salary from candidats
where candidats_addr= ‘Beijing‘
order by candidats_salary desc;//表示以薪水来进行排序,desc 表示按降序。mysql 默认的升序。

七,要是只想查看前面某几行,或者比如 想查找薪水最高是多少,可以用limit.

select distinct candidats_salary from candidats
order by candidats_salary desc
limit 1;

也可以显示前几行,limit 3 表示显示前三行。

注意mysql默认第一行为0

显示从第3行开始的4行,用limit 3,4

这里面用了一个distinct。不用的话,mysql会将所有的salary值返回。用discint 表示返回不同值。

八,通常不会将所有东西写在一张表里面,那样太繁复且不好更改,比如将所有候选人信息以及公司信息记录在一个表里面。通常最好的方式是一张表记录候选人信息,一张表记录各公司信息。那查询的时候,如何查询两张表里面的某些内容呢?

需要将两张表关联起来。

用inner join ....on...

比如:

select candidats_name, candidats_school, candidats_company, company_size
from candidats inner join company on candidats_company = company_name;

这里面两张表里面通过公司名字进行关联。

九,想要对表里面某个数据进行更新,用update

update candidats
set candidats_salary = ‘19000‘
where candidats_id = ‘5‘;

set 对想要更新的数据进行赋值,where 定义具体是哪个位置的数据。试了几次,这里where只能用主键来定位要更新的数据位置。

删除某行用delete

delete from candidats
where candidats_id = 4;// 这里删除第四行。

时间: 2024-08-07 04:09:42

数据库学习之初始-创建表及几个命令的相关文章

SQL Server 2008从基础开始学习历程(1)------创建表与查询

[by:yy] 无论我们学什么呢,都要讲究一个Why,一个How.那么我们为什么要学SQL呢?无非就那么几点. 1.为了适应其他技术,和其他技术配对而学. 我个人的理解呢,只要在IT行业,无论你学什么,或者做什么工作.都离不开数据库.而学习数据库呢,又太文字化了,看的心里就烦.我是很抵触文字的.看着一大排一大排的字,就怕.可能是大天朝的教育所致.已经怕了学生生涯了. 2.为了适应社会而学. 随便找个招聘信息,都会有标注需要会SQL语言啊.了解MySql呀.会搞Oracle呀.所以呢,为了能在找工

SQL语句创建数据库,SQL语句删除数据库,SQL语句创建表,SQL语句删除表,SQL语句添加约束,SQL语句删除约束

创建数据库: 1 CREATE DATABASE Test --要创建的数据库名称 2 ON PRIMARY 3 ( 4 --数据库文件的具体描述 5 NAME='Test_data', --主数据文件的逻辑名称 6 FILENAME='E:\project\Test_data.mdf', --主数据文件的物理名称 7 SIZE=5MB, --主数据文件的初始大小 8 MAXSIZE=100MB, --主数据文件的增长的最大值 9 FILEGROWTH=15% --主数据文件的增长率 10 )

Android数据库高手秘籍(二)——创建表和LitePal的基本用法

文章中我们学习了一些Android数据库相关的基础知识,和几个颇为有用的SQLite命令,都是直接在命令行操作的.但是我们都知道,数据库是 要和程序结合在一起使用的,单独对一个数据库去进行増删改查操作并没有什么意义,因此今天我们就来学习一下如何在Android程序当中去操作 SQLite数据库,还没看过前一篇文章的朋友可以先去参考 Android数据库高手秘籍(一)——SQLite命令 . 操作数据库的第一步当然是创建表了,传统创建表的方法相信大多数人都知道,那么今天我除了会展示传统的建表方法之

mysql数据库学习(二)--表操作

一.表操作 以下内容都是自己学习的时候看过的一些知识,作为笔记记录一下吧,大部分都是所看文章的内容. 1.创建表 前面的基础篇笔记是相当于搭建了一个方便管理的文件夹树根,下面要学习的是一些关于表的知识,相当于树上的叶子吧! create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGINE=InnoDB DEFAULT CHARSET=utf8: 下面这两个变量是: ENGINE :存储引擎 charset:字符集 是否可空,null表示空,非字符串 not

Oracle学习记录 二 创建表等操作练习

进行了第一章的基本数据操作指令练习后,进行数据库的一些操作. 创建表class有两个栏:numbers和names: create table class (numbers number, names char(20)); 这样建名都是大写的了,不想这样就加上""双引号  numbers这是栏名,number这是数据类型 2. 在建表的时候,限制哪些数据可以存入哪些不可以 create table class2 (numbers number not null, names char(

数据库学习记录-数据创建、更新与删除

创建数据库SPJ,创建四个关系模式S,P,J,SPJ; 创建表 插入元素 --创建S(供应商)表 create table S( ????SNO VARCHAR(8), ????SNAME VARCHAR(8), ????STATUS INTEGER, ????CITY VARCHAR(8)); --插入元素 insert into S values ????('S1','精益','20','天津') ????('S2','盛锡','10','北京'), ????('S3','东方红','30'

数据库--------用代码来创建表

一.首先创建一个数据库,名叫“ssss" 二.点击查询 三.点击,创建查询,会出现一个创建查询的窗口: 四.在查询编辑器,中写代码

Qt 数据库创建表失败原因之数据库关键字

本人数据库新手,在创建表时出现问题,最后经查证,找出问题所在.下面的程序是部分节选,在创建数据库表的时候,起先使用的L24的CreateDB,经测试,一直输出 Create testResult Fail, query->isActive()也为false,这就说明问题出在createDB上,也就是说这个QString应该是不符合要求才出错的.后来逐个测试,最后发现是 check varchar(100)的原因,经查看check是数据库关键字. 1 //创建数据库文件路径 2 testResul

MySQL数据库学习初步

我使用的环境是Win7,开始学习PHP和MySQL,并且买了本<Head First PHP & MySQL>,可以从Head First Labs官网获得HeadFirst系列书籍的相关信息和源代码. 1.下载XAMPP开发包 从XAMPP中文官网下载目前比较流行的PHP开发包,XAMPP是完全免费且易于安装的Apache发行版,其中包含MySQL.PHP和Perl.XAMPP适用于Windows.Mac OS X和Linux,XAMPP开放源码包的设置让安装和使用出奇容易.我下载的