MySQL和窗体程序开发

数据库基础语法

可视化工具:DBeaver

创建表:create table 名称 (数据名称 数据类型)

1
create table student (id int,name char(10),age int,sex char(5));
类型 指令 范围
整数 TINYINT -128到127
整数 SMALLINT -32768到32767
整数 MEDIUMINT -8388608到8388607
整数 INT -2147483648到2147483647
整数 BIGINT -9223372036854775808到9223372036854775807
小数 DECIMAL() 在存储时需要指定总位数和小数位数。示例:(10,2)
字符串 CHAR 定长字符串,存储0到255个字符
字符串 VARCHAR() 变长字符串,可以存储0到65535个字符,示例:(100)
字符串 TEXT 用于存储较长的文本数据,最大长度为65535个字符
日期 DATE 格式为YYYY-MM-DD。示例:“2022-05-15”
时间 TIME 格式为HH:MM:SS。示例:“12:30:45”
日期和时间 DATETIME 格式为YYYY-MM-DD HH:MM:SS。示例:“2022-05-15 12:30:45”
日期和时间 TIMESTAMP 自动记录最后修改的日期和时间。示例:“2022-05-15 12:30:45”
枚举 ENUM() 用于定义一组可能的值,只能选择其中的一个值。示例:ENUM(“Male”,“Female”),只能选择”Male”或”Female”
集合 SET() 定义一组可能的值,可以选择其中的多个值。示例:SET(“Red”,“Green”,“Blue”),可以选择”Red”、“Green”和”Blue”
布尔 bool 可以存储True或False

上述数据类型都支持一些属性,如指定默认值、是否允许为空、是否自增等。例:

  • 指定默认值:默认值属性用于在插入新行时为列指定一个默认值。示例:

    age INT DEFAULT 18,默认将年龄设置为18。

  • 是否允许为空:允许为空属性用于确定该列是否可以为空。示例:

    address VARCHAR(100) NULL,地址可以为空。

  • 是否自增:自增属性用于在每次插入新行时自动为列生成唯一的值。示例:

    id INT AUTO_INCREMENT PRIMARY KEY,id将自动递增,作为主键。

显示表结构:desc 表名

1
desc student;

删除表:drop table 表名

1
drop table student;

表结构修改:

数据表添加列:alter table 表名 add 列名 类型;

1
alter table student add height int(10);

数据表删除列:alter table 表名 drop 列名;

1
alter table student drop height;

数据列改名:alter table 表名 change column 原名 改名 类型

1
alter table student change column height high int(3);

数据列修改数据类型:alter table 表名 modify column 列名 改后类型

1
alter table student modify column high char(10);

修改表名:alter table 原名 rename to 改名

1
alter table student rename to student_table;

插入数据项:insert into 表名(要添加的列名) value (对应的数据);(如果都添加可直接表名)

1
insert into student(id,name,age,sex,high) value (001,"张三",10,"男",160);

删除数据项:delete from 表名 where 列名=?

1
delete from student where high=140;

修改数据项:update 表名 set 修改的列名 =’1’ where 修改的对象 =’ ‘

1
update 用户信息 set U_账号 ='1' where U_账号 ='15'

设置主键:

  1. 创建表时:

    1
    primary key (列名)
  2. 现有的表:

    1
    2
    ALTER TABLE 表名
    ADD PRIMARY KEY (列名);

自增主键:

  1. 创建表时:

    1
    2
    CREATE TABLE 表名 (
    列名 类型 AUTO_INCREMENT PRIMARY KEY,);
  2. 现有的表:

    1
    2
    ALTER TABLE 表名
    MODIFY 列名 类型 AUTO_INCREMENT PRIMARY KEY;

逻辑运算符(筛选)

筛选中间的值:
语法:select * from 表名 where 列名 between 最小值 and 最大值;

1
select * from student where id between 2 and 5;

作用和使用><是一样的

1
select * from student where id>2 and id<5;

筛选这一列为空的值:

语法:select * from 表名 where 列名 is null;

1
select * from student where high is null;

筛选指定的值:
语法:select * from 表名 where 列名 in (值1,值2,…)

1
select * from student where age in(9,12);

筛选包含有元素的值
通配符:

  • % 代表任意字符和数量
  • _ 一个下划线代替一个字符
    语法:select * from 表名 where 列名 like ‘通配符 特征 通配符’;
1
2
select * from student where name like '张%';    =张死鬼, 张死,张鬼,张死鬼2
select * from student where name like '张_'; ==张死,张鬼

窗体开发

基本信息修改

窗口标题:外观-Text

窗口图标:样式-icon

窗口颜色:外观–BackColor

窗口背景:外观-backgroundlmage

背景属性:外观-backgroundlmageLayout

窗口位置:布局-StartPosition

最大化最小化启用:样式-maximizebox和minimizebox

用户修改大小:布局-Autosizemode

图书馆管理系统

1.构造对应的程序界面

2.创建对应的数据库

  • 建立图书管理系统数据库

  • 建立两个表

    1.用户表(id,密码,姓名,性别,身份证,电话,使用状态)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    create table YH(
    U_id int,
    U_pwd varchar(6),
    U_name varchar(20),
    U_sex varchar(2),
    U_idcard varchar(18),
    U_Tel varchar(11),
    U_sed bool,
    primary key (U_id)
    );

    2.管理员表(id,密码,姓名)

    1
    2
    3
    4
    5
    6
    create table YH(
    A_id int,
    A_pwd varchar(6),
    A_name varchar(20),
    primary key (U_id)
    );

添加1个管理员和2个用户

1
2
3
4
insert into gly (A_id,A_pwd,A_name) value (001,123456,"张三");

insert into yh (U_id,U_pwd,U_name,U_sex,U_idcard,U_Tel,U_sed) value (100001,123456,"李四","男",440923200505050505,12345678910,1);
insert into yh (U_id,U_pwd,U_name,U_sex,U_idcard,U_Tel,U_sed) value (100002,123456,"王五","女",440923200505050504,12345678911,1);

3.连接数据库

安装MySQL Connector/NET和MySQL for Visual Studio驱动

在项目中右键添加NuGet程序包(MySql.Data)

添加类和代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using MySql.Data.MySqlClient;//包含与数据库交互的类和方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 图书管理系统
{
internal class 数据库连接
{
static void Main(string[] args)
{
//数据库的连接串
string connectionString = "server=MySQL服务器地址;user id=用户名;password=密码;database=数据库名称;";
//创建MySQL...类的对象conn,连接数据库的连接串
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
try
{
//尝试打开数据库连接
conn.Open();
//连接成功输出(Connection successful!)
//Console.WriteLine("Connection successful!");
// Perform database operations here...
}
//尝试打开连接过程中遇到任何问题,如网络问题、认证失败或其他错误,catch块将捕获这些异常并打印错误消息到控制台。
catch (Exception ex)
{
Console.WriteLine("An error occurred: " + ex.Message);
}
}
}
}
}